Zelfstudie over het testen van big data: wat is, strategie, hoe Hadoop te testen

Inhoudsopgave:

Anonim

Big data testen

Big Data Testing 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 met behoud van de prestaties en beveiliging.

Big data is een verzameling grote datasets die niet met traditionele computertechnieken kunnen worden verwerkt. Bij het testen van deze datasets zijn verschillende tools, technieken en frameworks nodig om te verwerken. Big data heeft betrekking op het maken, opslaan, ophalen en analyseren van gegevens die opmerkelijk zijn in termen van volume, variëteit en snelheid. U kunt hier meer lezen over Big Data, Hadoop en MapReduce

In deze tutorial over Big Data Testing leert u:

  • Wat is een strategie voor het testen van big data?
  • Hoe Hadoop-applicaties te testen
  • Architectuur testen
  • Prestatietests
  • Aanpak van prestatietests
  • Parameters voor prestatietests
  • Testomgevingbehoeften
  • Big data testen Vs. Traditionele databasetesten
  • Tools die worden gebruikt in Big Data-scenario's
  • Uitdagingen bij het testen van big data

Wat is een strategie voor het testen van big data?

Het testen van de Big Data-applicatie is meer verificatie van de gegevensverwerking dan het testen van de individuele functies van het softwareproduct. Als het gaat om het testen van big data, zijn prestatie- en functionele testen de sleutelwoorden.

In de Big Data-teststrategie verifiëren QA-ingenieurs de succesvolle verwerking van terabytes aan gegevens met behulp van een commodity-cluster en andere ondersteunende componenten. Het vereist een hoog niveau van testvaardigheden, aangezien de verwerking erg snel is. Er kunnen drie soorten verwerking zijn

Daarnaast is de 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 moet deze worden beschouwd als onderdeel van het testen van databases. Het omvat het controleren van verschillende kenmerken, zoals conformiteit, nauwkeurigheid, duplicatie, consistentie, validiteit, volledigheid van gegevens, enz. Vervolgens zullen we in deze zelfstudie over Hadoop-testen leren hoe we Hadoop-toepassingen 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 worden onderverdeeld in drie stappen

Stap 1: Validatie van gegevensstaging

De eerste stap in deze zelfstudie over het testen van big data wordt de pre-Hadoop-fase genoemd en 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 getrokken
  • Brongegevens vergelijken met de gegevens die in het Hadoop-systeem zijn gepusht om er zeker van te zijn dat ze overeenkomen
  • Controleer of de juiste gegevens zijn geëxtraheerd en naar de juiste HDFS-locatie zijn geladen

Tools zoals Talend , Datameer, kunnen worden gebruikt voor validatie van gegevensstaging

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 na het uitvoeren van meerdere knooppunten, zodat de

  • Het kaartverminderingsproces werkt correct
  • Regels voor gegevensaggregatie of -scheiding worden op de gegevens geïmplementeerd
  • Sleutelwaardeparen worden 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 outputgegevensbestanden worden gegenereerd en zijn klaar om te worden verplaatst naar een EDW (Enterprise Data Warehouse) of een ander systeem op basis van de vereiste.

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 gegevens van het HDFS-bestandssysteem

Architectuur testen

Hadoop verwerkt zeer grote hoeveelheden gegevens en vergt zeer veel middelen. Daarom zijn architecturale testen cruciaal om het succes van uw Big Data-project te garanderen. Een slecht of onjuist ontworpen systeem kan leiden tot verslechtering van de prestaties en het systeem voldoet mogelijk niet aan de vereiste. Prestatie- en Failover-testservices moeten in ieder geval in een Hadoop-omgeving worden uitgevoerd.

Prestatietests omvatten het testen van de voltooiingstijd van de taak, het geheugengebruik, de gegevensdoorvoer en vergelijkbare systeemstatistieken. Hoewel het motief van de Failover-testservice is om te verifiëren dat gegevensverwerking naadloos plaatsvindt in het geval van uitval van gegevensknooppunten

Prestatietests

Prestatietests voor big data omvatten twee hoofdacties

  • Gegevensopname en doorheen : 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 in een bepaald tijdsbestek kan verwerken. Het bevat ook hoe snel gegevens kunnen worden ingevoegd in de onderliggende gegevensopslag, bijvoorbeeld de invoegsnelheid in een Mongo- en Cassandra-database.
  • Gegevensverwerking : het gaat om het verifiëren van de snelheid waarmee de query's of kaartverminderende taken worden uitgevoerd. Het omvat ook het afzonderlijk testen van de gegevensverwerking wanneer de onderliggende gegevensopslag binnen de gegevenssets wordt gevuld. Het uitvoeren van bijvoorbeeld Map Reduce-taken op de onderliggende HDFS
  • Prestaties van subcomponenten : deze systemen bestaan ​​uit meerdere componenten en het is essentieel om elk van deze componenten afzonderlijk te testen. Bijvoorbeeld hoe snel het bericht wordt geïndexeerd en geconsumeerd, MapReduce-taken, queryprestaties, zoeken, enz.

Aanpak van prestatietests

Prestatietests voor big data-toepassingen omvatten het testen van enorme hoeveelheden gestructureerde en ongestructureerde gegevens, en het vereist een specifieke testbenadering om dergelijke enorme gegevens te testen.

Prestatietests worden in deze volgorde uitgevoerd

  1. Het proces begint met het instellen van het Big data-cluster dat op prestaties moet worden getest
  2. Identificeer en ontwerp bijbehorende workloads
  3. Bereid individuele clients voor (er worden aangepaste scripts gemaakt)
  4. Voer de test uit en analyseer het resultaat (als de doelstellingen niet worden behaald, stem dan het onderdeel af en voer het opnieuw uit)
  5. 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 vastleglogboek mag groeien
  • Gelijktijdigheid: hoeveel threads kunnen een schrijf- en leesbewerking uitvoeren
  • Caching: Stem de cache-instellingen "row cache" en "key cache" af.
  • Time-outs: waarden voor time-out voor verbinding, time-out voor query's, enz.
  • JVM-parameters: heapgrootte, algoritmen voor GC-verzameling, enz.
  • Kaart vermindert de prestaties: sorteren, samenvoegen, enz.
  • Berichtenwachtrij: berichtsnelheid, -grootte, enz.

Testomgevingbehoeften

De testomgeving moet afhangen van het type applicatie dat u test. Voor het testen van big data-software moet de testomgeving omvatten

  • Het moet voldoende opslagruimte hebben en een grote hoeveelheid gegevens verwerken
  • Het moet een cluster hebben met gedistribueerde knooppunten en gegevens
  • Het moet een minimaal CPU- en geheugengebruik hebben om de prestaties hoog te houden om de prestaties van Big Data te testen

Big data testen Vs. Traditionele databasetesten

Eigendommen

Traditionele databasetests

Big data testen

Gegevens

  • Tester werkt met gestructureerde gegevens
  • Tester werkt met zowel gestructureerde als ongestructureerde data

Testbenadering

  • De testaanpak is goed gedefinieerd en beproefd
  • De testaanpak vereist gerichte R & D-inspanningen

Strategie testen

  • De tester heeft de optie om de strategie "Sampling" handmatig uit te voeren of de strategie "Uitputtende verificatie" door de automatiseringstool
  • "Sampling" -strategie in Big data is een uitdaging

Infrastructuur

  • Er is geen speciale testomgeving voor nodig, aangezien de bestandsgrootte beperkt is
  • Het vereist een speciale testomgeving vanwege de grote datagrootte en bestanden (HDFS)

Validatietools

De tester maakt gebruik van de op Excel gebaseerde macro's of op de gebruikersinterface gebaseerde automatiseringstools

Geen gedefinieerde tools, het bereik is enorm, van programmeertools zoals MapReduce tot HIVEQL

Testhulpmiddelen

Testtools kunnen worden gebruikt met elementaire bedieningskennis en minder training.

Het vereist een specifieke reeks vaardigheden en training om een ​​testtool te gebruiken. De tools bevinden zich ook in de kinderschoenen en kunnen na verloop van tijd met nieuwe functies komen.

Tools die worden gebruikt in Big Data-scenario's

Big Data-cluster

Tools voor big data

NoSQL:

  • CouchDB, databases MongoDB, Cassandra, Redis, ZooKeeper, HBase

MapReduce:

  • Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume

Opslag:

  • S3, HDFS (Hadoop Distributed File System)

Servers:

  • Elastic, Heroku, Elastic, Google App Engine, EC2

Verwerken

  • R, Yahoo! Buizen, Mechanische Turk, BigSheets, Datameer

Uitdagingen bij het testen van big data

  • Automatisering

    Voor het automatiseren van big data is iemand met technische expertise nodig. Geautomatiseerde tools zijn ook niet uitgerust om onverwachte problemen op te lossen die zich tijdens het testen voordoen

  • Virtualisatie

    Het is een van de integrale fasen van testen. De latentie van virtuele machines zorgt voor timingproblemen bij het testen van de prestaties van big data in realtime. Ook het beheren van afbeeldingen in Big data is een gedoe.

  • Grote dataset
    • Moet meer gegevens verifiëren en moet dit sneller doen
    • Noodzaak om de testinspanning te automatiseren
    • Moet op verschillende platforms kunnen testen

Uitdagingen voor prestatietests

  • Diverse reeks technologieën : elk subonderdeel behoort tot een andere technologie en moet afzonderlijk worden getest
  • Onbeschikbaarheid van specifieke tools : geen enkele tool kan de end-to-end-tests uitvoeren. NoSQL is bijvoorbeeld mogelijk niet geschikt voor berichtenwachtrijen
  • Testscripting : er is een hoge mate van scripting nodig om testscenario's en testcases te ontwerpen
  • Testomgeving : Het heeft een speciale testomgeving nodig vanwege de grote datagrootte
  • Bewakingsoplossing : er zijn beperkte oplossingen die de hele omgeving kunnen bewaken
  • Diagnostische oplossing : er is een aangepaste oplossing nodig om te ontwikkelen om de knelpunten in de prestaties te analyseren

Overzicht

  • Naarmate data-engineering en data-analyse naar een hoger niveau gaan, is big data-testen onvermijdelijk.
  • Big data-verwerking kan batchgewijs, realtime of interactief zijn
  • Er zijn drie fasen van het testen van Big Data-applicaties
    • Validatie van gegevensstaging
    • "MapReduce" -validatie
    • Output validatiefase
  • Architectuurtesten is de belangrijke fase van big data-testen, aangezien een slecht ontworpen systeem kan leiden tot ongekende fouten en verslechtering van de prestaties
  • Prestatietests voor big data omvatten verificatie
    • Datadoorvoer
    • Gegevensverwerking
    • Prestaties van subcomponenten
  • Big data testen is heel anders dan traditionele data testen in termen van data, infrastructuur en validatietools
  • Big Data Testing-uitdagingen zijn onder meer virtualisatie, testautomatisering en het omgaan met grote datasets. Prestatietests van Big Data-applicaties zijn ook een probleem.