Handleiding voor het testen van big data: Wat is het, strategie en hoe test je het?
⚡ Slimme samenvatting
Big Data Testing verifieert of een big data-applicatie terabytes aan data correct, snel en veilig verwerkt. Dit wordt bereikt door validatie van data-staging, MapReduce-validatie en uitvoervalidatie te combineren met architectuur- en prestatiecontroles binnen een gedistribueerd Hadoop-cluster.
Wat is big data-testen?
Big Data Testing is een testproces voor een big data-applicatie om ervoor te zorgen dat alle functionaliteiten van de applicatie naar behoren werken. Het doel van Big Data Testing is om te garanderen dat het big data-systeem soepel en foutloos functioneert, met behoud van optimale prestaties en beveiliging.
Big data is een verzameling van grote datasets die niet met traditionele computertechnieken verwerkt kunnen worden. Het testen van deze datasets vereist diverse tools, technieken en frameworks. Big data heeft betrekking op het creëren, opslaan, ophalen en analyseren van data die opmerkelijk is qua volume, variëteit en snelheid. Je kunt hier meer over lezen. Big data, Hadoop en KaartVerminderen voordat je begint met testen.
Wat is een big data-teststrategie?
Het testen van een Big Data-applicatie draait meer om het verifiëren van de gegevensverwerking dan om het testen van de individuele functionaliteiten van het softwareproduct. Bij Big Data-testen zijn prestatie- en functionele testen cruciaal.
Bij een teststrategie voor big data controleren QA-engineers de succesvolle verwerking van terabytes aan data met behulp van een standaard cluster en andere ondersteunende componenten. Dit vereist een hoog niveau van testvaardigheden, aangezien de verwerking zeer snel verloopt. Verwerking kan van drie typen zijn:
- Batchverwerking: Opgeslagen gegevens worden volgens een schema verwerkt, dus de tests zijn gericht op de voltooiing en nauwkeurigheid van de taken.
- Realtime verwerking: Gegevens worden verwerkt bij binnenkomst, dus de tests richten zich op latentie en gegevensverlies.
- Interactieve verwerking: Analisten stellen rechtstreeks vragen, dus tests richten zich op de reactietijd van ad-hocvragen.
Onderstaand diagram geeft een samenvatting van de strategie.
Daarnaast is datakwaliteit ook een belangrijke factor bij het testen van Hadoop. Voordat de applicatie getest wordt, is het noodzakelijk om de datakwaliteit te controleren. Dit moet worden beschouwd als onderdeel van het testen van de database. Het omvat het controleren van verschillende kenmerken zoals conformiteit, nauwkeurigheid, duplicatie, consistentie, validiteit, volledigheid van de data, enzovoort. In deze Hadoop-testhandleiding leren we vervolgens hoe we Hadoop-applicaties kunnen testen.
Hoe test je Hadoop-applicaties?
De volgende afbeelding geeft een overzicht op hoog niveau van de fasen in het testen van Big Data-applicaties.
Big Data-testen, oftewel Hadoop-testen, kunnen grofweg in drie stappen worden verdeeld.
Stap 1: Validatie van gegevensstaging
De eerste stap in deze handleiding voor het testen van big data wordt de pre-Hadoop-fase genoemd en omvat procesvalidatie.
- Gegevens uit diverse bronnen, zoals RDBMS, weblogs, sociale media, enz., moeten worden gevalideerd om ervoor te zorgen dat de juiste gegevens in het systeem worden ingevoerd.
- Het vergelijken van brongegevens met de gegevens die in het Hadoop-systeem zijn gepusht om er zeker van te zijn dat ze overeenkomen
- Controleer of de juiste gegevens aanwezig zijn.tracted en geladen in de juiste HDFS plaats
Tools zoals Talend En Datameer kan worden gebruikt voor de validatie van data-staging.
Stap 2: “MapReduce”-validatie
De tweede stap is een validatie van "MapReduce". In deze fase controleert de Big Data-tester de validatie van de bedrijfslogica op elke node en valideert deze vervolgens na uitvoering op meerdere nodes, waarbij wordt gewaarborgd dat:
- Het MapReduce-proces werkt correct.
- Op de gegevens worden regels voor gegevensaggregatie of -segregatie geïmplementeerd
- Er worden sleutelwaardeparen gegenereerd
- De gegevens valideren na het MapReduce-proces.
Stap 3: Outputvalidatiefase
De laatste of derde fase van Hadoop-testen is het outputvalidatieproces. De uitvoergegevensbestanden worden gegenereerd en zijn klaar om op basis van de vereisten te worden verplaatst naar een EDW (Enterprise Data Warehouse) of een ander systeem.
De activiteiten in de derde fase omvatten:
- Om te controleren of de transformatieregels correct zijn toegepast
- Om de gegevensintegriteit en het succesvol laden van gegevens in het doelsysteem te controleren
- Om te controleren of er geen gegevensbeschadiging is door de doelgegevens te vergelijken met de HDFS-bestandssysteemgegevens
Architectuur testen
De aandacht verschuift nu van de data naar het cluster dat deze data bevat.
Hadoop verwerkt zeer grote hoeveelheden data en is zeer resource-intensief. Daarom is architectuurtesten cruciaal voor het succes van uw Big Data-project. Een slecht of onjuist ontworpen systeem kan leiden tot prestatievermindering en het systeem kan mogelijk niet aan de vereisten voldoen. Minimaal moet u het volgende doen: prestatie En failover-testservices moeten in een Hadoop-omgeving worden uitgevoerd.
Prestatietesten omvatten het testen van de voltooiingstijd van taken, het geheugengebruik, de gegevensdoorvoer en vergelijkbare systeemstatistieken. Het doel van de failover-testservice is om te verifiëren dat de gegevensverwerking naadloos verloopt in geval van uitval van dataknooppunten.
Performance Testing
Prestatietesten voor big data omvatten drie hoofdgebieden.
- Gegevensinvoer en -doorvoer: In deze fase controleert de Big Data-tester hoe snel het systeem gegevens uit verschillende gegevensbronnen kan verwerken. Het testen omvat het vaststellen van het aantal berichten dat de wachtrij binnen een bepaalde tijd kan verwerken. Het omvat ook het meten van de snelheid waarmee gegevens in de onderliggende gegevensopslag kunnen worden ingevoegd, bijvoorbeeld de invoegsnelheid in een MongoDB en Cassandra database.
- Gegevensverwerking: Het omvat het controleren van de snelheid waarmee de query's of MapReduce-taken worden uitgevoerd. Het omvat ook het testen van de gegevensverwerking in isolatie, wanneer de onderliggende gegevensopslag gevuld is met de datasets. Bijvoorbeeld door MapReduce-taken uit te voeren op de onderliggende HDFS.
- Prestaties van de subcomponenten: Deze systemen bestaan uit meerdere componenten en het is essentieel om elk van deze componenten afzonderlijk te testen. Denk bijvoorbeeld aan de snelheid waarmee berichten worden geïndexeerd en verwerkt, MapReduce-taken, queryprestaties, zoekfunctionaliteit, enzovoort.
Prestatietestbenadering
Prestatietesten voor een Big Data-applicatie omvatten het testen van enorme hoeveelheden gestructureerde en ongestructureerde data, en vereisen een specifieke testaanpak om dergelijke massale data te testen.
Onderstaande workflow toont de volgorde die een prestatietest doorloopt.
De prestatietests worden in deze volgorde uitgevoerd.
- Het proces begint met het opzetten van het Big Data-cluster, dat vervolgens op prestaties getest zal worden.
- Identificeer en ontwerp overeenkomstige werklasten
- Bereid individuele klanten voor (er worden aangepaste scripts gemaakt)
- Voer de test uit en analyseer de resultaten (als de doelstellingen niet worden bereikt, pas dan het onderdeel aan en voer de test opnieuw uit).
- Optimale configuratie
Parameters voor prestatietests
De volgende parameters moeten worden gecontroleerd tijdens de prestatietests:
- Gegevens opslag: Hoe gegevens in verschillende knooppunten worden opgeslagen
- Commitlogboeken: Hoe groot het commit-logboek mag worden
- gelijktijdigheid: Hoeveel threads kunnen schrijf- en leesbewerkingen uitvoeren?
- caching: Pas de cache-instellingen voor 'rijcache' en 'sleutelcache' aan.
- Time-outs: Waarden voor verbindingstime-out, querytime-out, enz.
- JVM-parameters: Heapgrootte, GC-collectiealgoritmen, enz.
- MapReduce-prestaties: Sorteren, samenvoegen, enz.
- Berichtenwachtrij: Berichtfrequentie, -grootte, enz.
Testomgevingsbehoeften
De vereisten voor de testomgeving hangen af van het type applicatie dat u test. Voor het testen van Big Data-software moet de testomgeving het volgende omvatten.
- Het moet voldoende ruimte bieden voor de opslag en verwerking van grote hoeveelheden data.
- Het zou een cluster moeten hebben met verspreide knooppunten en gegevens
- Het moet een minimaal CPU- en geheugengebruik hebben om de prestaties hoog te houden en de Big Data-prestaties te testen
Big Data-testen versus traditionele databasetesten
De onderstaande tabel vergelijkt de twee disciplines eigenschap voor eigenschap.
| Aanbod | Traditioneel databasetesten | Big Data-testen |
|---|---|---|
| Data | Tester werkt met gestructureerde data. | Tester werkt met zowel gestructureerde als ongestructureerde data |
| Testaanpak | De testaanpak is goed gedefinieerd en beproefd | De testaanpak vereist gerichte R&D-inspanningen |
| Strategie testen | De tester heeft de keuze tussen een handmatige steekproefstrategie ("Sampling") of een automatiseringstool voor een grondige verificatie ("Exhaustive Verification"). | De strategie voor het selecteren van steekproeven in big data is een uitdaging. |
| Infrastructuur | Er is geen speciale testomgeving nodig omdat de bestandsgrootte beperkt is | Het vereist een speciale testomgeving vanwege de grote gegevensgrootte en bestanden (HDFS) |
| Validatietools | De tester maakt gebruik van Excel-macro's of automatiseringstools op basis van de gebruikersinterface. | Er zijn geen vastgestelde tools; het aanbod is enorm, van programmeertools zoals MapReduce tot HiveQL. |
| testtools | Testtools kunnen worden gebruikt met basiskennis van de bediening en weinig training. | Het bedienen van een testtool vereist specifieke vaardigheden en training. Bovendien bevinden de tools zich nog in een beginstadium en kunnen er in de loop der tijd nieuwe functies aan worden toegevoegd. |
Hulpmiddelen die worden gebruikt in big data-scenario's
De onderstaande tabel groepeert de meest gebruikte tools per clusterlaag.
| Big data Cluster | Hulpmiddelen voor grote gegevens |
|---|---|
| Geen SQL: | CouchDB, Databases MongoDB, Cassandra, Redis, ZooKeeper, HBase |
| KaartVerminderen: | Hadoop, BijenkorfPig, Cascading, Oozie, Kafka, S4, MapR, Flume |
| Opslag: | S3, HDFS (Hadoop Distributed File System) |
| Servers: | Elastisch, Heroku, Google App Engine, EC2 |
| Verwerking: | R, Yahoo! Leidingen, Mechanische Turk, BigSheets, Datameer |
Uitdagingen bij het testen van big data
Drie praktische obstakels keren bij vrijwel elk Big Data-project terug.
- Automatisering: Automatisering testen Voor Big Data is iemand met technische expertise nodig. Bovendien zijn geautomatiseerde tools niet geschikt om onverwachte problemen op te lossen die zich tijdens het testen voordoen.
- Virtualisatie: Het is een van de essentiële testfasen. De latentie van virtuele machines zorgt voor timingproblemen bij realtime prestatietests van big data. Bovendien is het beheren van afbeeldingen in big data een lastige klus.
- Grote dataset: Drie soorten druk hangen samen met het volume.
- Er moeten meer gegevens worden geverifieerd en dit moet sneller gebeuren
- Noodzaak om de testinspanning te automatiseren
- Je moet in staat zijn om op verschillende platformen te testen.
Uitdagingen op het gebied van prestatietesten
- Een gevarieerde reeks technologieën: Elk subonderdeel behoort tot een andere technologie en moet afzonderlijk worden getest.
- Onbeschikbaarheid van specifieke gereedschappen: Geen enkele tool kan de volledige testfase uitvoeren. NoSQL is bijvoorbeeld mogelijk niet geschikt voor berichtenwachtrijen.
- Testscripts: Voor het ontwerpen van testscenario's en testcases is een hoge mate van scripting nodig.
- Test omgeving: Vanwege de grote hoeveelheid gegevens is een speciale testomgeving nodig.
- Monitoringoplossing: Er bestaan slechts beperkte oplossingen waarmee de gehele omgeving kan worden gemonitord.
- Diagnostische oplossing: Een oplossing op maat is nodig om de knelpunten in de prestaties nauwkeurig te identificeren.



