Tutorial voor het testen van big data: wat is, strategie, hoe Hadoop te testen
Big Data-testen
Big Data-testen is een testproces van een big data-applicatie om ervoor te zorgen dat alle functionaliteiten van een big data-applicatie werken zoals verwacht. Het doel van big data-testen is ervoor te zorgen dat het big data-systeem soepel en foutloos werkt, terwijl de prestaties en veiligheid behouden blijven.
Big data is een verzameling grote datasets die niet met traditionele computertechnieken kunnen worden verwerkt. Testen van deze datasets omvat verschillende tools, technieken en raamwerken om te verwerken. Big data heeft betrekking op het creëren, opslaan, ophalen en analyseren van gegevens die opmerkelijk zijn in termen van volume, variëteit en snelheid. U kunt meer leren over Big Data, Hadoop en MapReduce hier
Wat is een big data-teststrategie?
Het testen van Big Data-applicaties is meer een verificatie van de gegevensverwerking dan het testen van de individuele kenmerken van het softwareproduct. Als het om Big Data-testen gaat, prestatie- en functionele testen zijn de sleutels.
In de Big Data-teststrategie verifiëren QA-engineers de succesvolle verwerking van terabytes aan data met behulp van commodity cluster en andere ondersteunende componenten. Het vereist een hoog niveau van testvaardigheden, aangezien de verwerking erg snel is. Verwerking kan van drie typen zijn
Daarnaast is datakwaliteit ook een belangrijke factor bij Hadoop-testen. Voordat u de applicatie test, is het noodzakelijk om de kwaliteit van de gegevens te controleren en dit moet worden beschouwd als onderdeel van het testen van databases. Het omvat het controleren van verschillende kenmerken, zoals conformiteit, nauwkeurigheid, duplicatie, consistentie, geldigheid, volledigheid van gegevens, etc. Vervolgens leren we in deze Hadoop Testing-tutorial hoe we Hadoop-applicaties kunnen testen.
Hoe Hadoop-applicaties te testen
De volgende afbeelding geeft een algemeen overzicht van de fasen in het testen van Big Data-applicaties
Big Data Testing of Hadoop Testing kan grofweg in drie stappen worden verdeeld
Stap 1: Validatie van gegevensstaging
De eerste stap in deze tutorial over het testen van big data, de pre-Hadoop-fase, omvat procesvalidatie.
- Gegevens uit verschillende bronnen, zoals RDBMS, weblogs, sociale media, enz. moeten worden gevalideerd om ervoor te zorgen dat de juiste gegevens in het systeem worden opgenomen
- 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 worden geëxtraheerd en op de juiste HDFS-locatie worden geladen
Tools zoals Talend, Datameer, kan worden gebruikt voor validatie van data-staging
Stap 2: “MapReduce”-validatie
De tweede stap is een validatie van “MapReduce”. In deze fase verifieert de Big Data-tester de validatie van de bedrijfslogica op elk knooppunt en valideert deze vervolgens nadat hij tegen meerdere knooppunten is uitgevoerd, om ervoor te zorgen dat de
- Map Reduce-proces werkt correct
- Op de gegevens worden regels voor gegevensaggregatie of -segregatie geïmplementeerd
- Er worden sleutelwaardeparen gegenereerd
- Validatie van de gegevens na het Map-Reduce-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.
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
Hadoop verwerkt zeer grote hoeveelheden data en is zeer resource-intensief. Daarom is architectuurtesten cruciaal om het succes van uw Big Data-project te garanderen. Een slecht of onjuist ontworpen systeem kan leiden tot prestatieverslechtering en het systeem kan er niet in slagen om aan de vereisten te voldoen. Ten minste, Prestatie- en failovertest services moeten worden uitgevoerd in een Hadoop-omgeving.
prestatietests omvat het testen van de voltooiingstijd van de taak, het geheugengebruik, de gegevensdoorvoer en soortgelijke systeemstatistieken. Terwijl het motief van de Failover-testservice is om te verifiëren dat de gegevensverwerking naadloos plaatsvindt in het geval van uitval van dataknooppunten
Performance Testing
Prestatietesten voor Big Data omvatten twee hoofdacties
- Gegevensopname en overal: In deze fase verifieert de Big Data-tester hoe het snelle systeem gegevens uit verschillende gegevensbronnen kan verbruiken. Testen omvat het identificeren van een ander bericht dat de wachtrij binnen een bepaald tijdsbestek kan verwerken. Het omvat ook hoe snel gegevens kunnen worden ingevoegd in de onderliggende gegevensopslag, bijvoorbeeld de invoegsnelheid in een Mongo en Cassandra databank.
Prestatietestbenadering
Prestatietesten voor big data-toepassingen omvatten het testen van enorme hoeveelheden gestructureerde en ongestructureerde data, en het vereist een specifieke testaanpak om dergelijke enorme data te testen.
Prestatietests worden in deze volgorde uitgevoerd
- Het proces begint met het instellen van het Big Data-cluster dat op prestaties moet worden getest
- Identificeer en ontwerp overeenkomstige werklasten
- Individuele klanten voorbereiden (er worden aangepaste scripts gemaakt)
- Voer de test uit en analyseer het resultaat (als de doelstellingen niet worden behaald, stem dan het onderdeel af en voer het opnieuw uit)
- Optimale configuratie
Parameters voor prestatietests
Er zijn verschillende parameters die moeten worden geverifieerd voor prestatietests
- Gegevensopslag: hoe gegevens worden opgeslagen in verschillende knooppunten
- Commit-logboeken: hoe groot het commit-logboek mag groeien
- Gelijktijdigheid: Hoeveel threads kunnen schrijf- en leesbewerkingen uitvoeren
- Caching: stem de cache-instellingen “row cache” en “key cache” af.
- Time-outs: waarden voor verbindingstime-out, querytime-out, enz.
- JVM-parameters: Heap-grootte, GC-verzamelingsalgoritmen, enz.
- Kaart vermindert prestaties: sorteren, samenvoegen, enz.
- Berichtenwachtrij: berichtsnelheid, grootte, enz.
Testomgevingsbehoeften
De testomgeving moet afhankelijk zijn van het type applicatie dat u test. Voor het testen van Big data-software moet de testomgeving omvatten
- Het moet voldoende ruimte hebben voor opslag en verwerking van een grote hoeveelheid gegevens
- 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 vs. Traditioneel databasetesten
Koten | Traditioneel databasetesten | Big data-testen |
---|---|---|
Data | Testers werken 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 | Tester heeft de optie om de “Sampling”-strategie handmatig uit te voeren of de “Exhaustive Verification”-strategie via de automatiseringstool | De “Sampling”-strategie 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 | Tester gebruikt ofwel het Excel-gebaseerde macro's of op UI gebaseerde automatiseringstools | Geen gedefinieerde tools, het bereik is enorm, van programmeertools zoals MapReduce tot HIVEQL |
testtools | Testtools kunnen worden gebruikt met basiskennis en minder training. | Het vereist een specifieke set vaardigheden en training om een testtool te bedienen. Bovendien bevinden de tools zich nog in hun beginstadium en kunnen ze na verloop van tijd met nieuwe functies komen. |
Tools die worden gebruikt in Big Data-scenario's
Big data Cluster | Hulpmiddelen voor grote gegevens |
---|---|
Geen SQL: | CouchDB, Databases MongoDB, Cassandra, Redis, ZooKeeper, HBase |
KaartVerminderen: | Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume |
Opslag: | S3, HDFS (Hadoop gedistribueerd bestandssysteem) |
Servers: | Elastisch, Heroku, Elastisch, Google App Engine, EC2 |
In behandeling | R, Yahoo! Leidingen, Mechanische Turk, BigSheets, Datameer |
Uitdagingen bij het testen van big data
- Automatisering
Automatisering testen voor Big data heb je iemand nodig met technische expertise. Bovendien zijn geautomatiseerde tools niet uitgerust om onverwachte problemen op te lossen die zich tijdens het testen voordoen
- virtualisatie
Het is een van de integrale testfasen. De latentie van virtuele machines zorgt voor timingproblemen bij het realtime testen van big data-prestaties. Ook het beheren van afbeeldingen in Big data is een gedoe.
- Grote dataset
- Er moeten meer gegevens worden geverifieerd en dit moet sneller gebeuren
- Noodzaak om de testinspanning te automatiseren
- Moet op verschillende platforms kunnen testen
Uitdagingen op het gebied van prestatietesten
- Diverse reeks technologieën: Elke subcomponent behoort tot een andere technologie en vereist afzonderlijke tests
- Onbeschikbaarheid van specifieke tools: Geen enkele tool kan de end-to-end-testen uitvoeren. Bijvoorbeeld, NoSQL is mogelijk niet geschikt voor berichtenwachtrijen
- Testscripts: Er is een hoge mate van scripting nodig om testscenario's en testgevallen te ontwerpen
- Test omgeving: Het heeft een speciale testomgeving nodig vanwege de grote gegevensgrootte
- Monitoring oplossing: Er bestaan beperkte oplossingen die de hele omgeving kunnen monitoren
- Diagnostische oplossing: er moet een oplossing op maat worden ontwikkeld om de knelpunten in de prestaties op te sporen
Samenvatting
- Nu data-engineering en data-analyse naar een hoger niveau evolueren, is het testen van big data onvermijdelijk.
- De verwerking van big data kan batchgewijs, realtime of interactief zijn
- 3 fasen van het testen van Big Data-applicaties zijn Data-staging-validatie, “MapReduce”-validatie en Output-validatiefase
- Architecture Testen is de belangrijke fase van het testen van big data, omdat een slecht ontworpen systeem kan leiden tot ongekende fouten en verslechtering van de prestaties
- Prestatietests voor Big data omvatten het verifiëren van de gegevensdoorvoer, gegevensverwerking en de prestaties van subcomponenten
- Big data-testen zijn heel anders dan traditionele data-testen op het gebied van data, infrastructuur en validatietools
- Uitdagingen bij Big Data Testing omvatten virtualisatie, testautomatisering en het omgaan met grote datasets. Ook het testen van de prestaties van Big Data-applicaties is een probleem.