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.

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

Big Data-teststrategie

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 following figuur geeft een overzicht op hoog niveau van fasen in het testen van big data-applicaties

Test Hadoop-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 gegevens en is zeer arbeidsintensief. Vandaar, archiStructurele testen zijn cruciaal om het succes van uw Big Data-project te garanderen. Een slecht of onjuist ontworpen systeem kan leiden tot achteruitgang van de prestaties en het systeem kan mogelijk niet aan de vereisten 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.
  • data Processing: het gaat om het verifiëren van de snelheid waarmee de query's of kaartreductietaken worden uitgevoerd. Het omvat ook het afzonderlijk testen van de gegevensverwerking wanneer de onderliggende gegevensopslag binnen de gegevenssets wordt gevuld. Bijvoorbeeld het uitvoeren van Map Reduce-taken op het 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.
  • 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.

    Prestatietestbenadering

    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 overeenkomstige werklasten
    3. Individuele klanten voorbereiden (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 commit-logboek mag groeien
    • Gelijktijdigheid: hoeveel threads schrijf- en leesbewerkingen kunnen uitvoeren
    • Caching: stem de cache-instellingen “row cache” en “key cache” af.
    • Time-outs: waarden voor verbindingstime-out, querytime-out, enz.
    • JVM-parameters: heapgrootte, 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 moet een cluster hebben met gedistribueerde 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

    Properties 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 van de bediening en met minder training. Het vereist een specifieke reeks vaardigheden en training om een ​​testtool te bedienen. Bovendien bevinden de tools zich in de beginfase en kunnen er in de loop van de tijd nieuwe functies verschijnen.

    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

    Samengevat

    • 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.