Big Data Testing Tutorial: Hva er, strategi, hvordan tester Hadoop

Big Data testing

Big Data testing er en testprosess av en big data-applikasjon for å sikre at alle funksjonene til en big data-applikasjon fungerer som forventet. Målet med big data-testing er å sørge for at big data-systemet kjører jevnt og feilfritt samtidig som ytelsen og sikkerheten opprettholdes.

Big data er en samling av store datasett som ikke kan behandles med tradisjonelle datateknikker. Testing av disse datasettene involverer ulike verktøy, teknikker og rammeverk å behandle. Big data er relatert til dataskaping, lagring, gjenfinning og analyse som er bemerkelsesverdig når det gjelder volum, variasjon og hastighet. Du kan lære mer om Big Data, Hadoop og MapReduce her.

Hva er Big Data-teststrategi?

Testing av Big Data-applikasjonen er mer verifisering av databehandlingen i stedet for å teste de individuelle funksjonene til programvareproduktet. Når det gjelder testing av store data, ytelse og funksjonstesting er nøklene.

I Big Data-teststrategi verifiserer QA-ingeniører vellykket behandling av terabyte med data ved å bruke vareklynge og andre støttende komponenter. Det krever et høyt nivå av testferdigheter da behandlingen er veldig rask. Behandlingen kan være av tre typer

Big Data Testing Strategi

Sammen med dette er datakvalitet også en viktig faktor i Hadoop-testing. Før du tester applikasjonen, er det nødvendig å kontrollere kvaliteten på dataene og bør betraktes som en del av databasetestingen. Det innebærer å sjekke ulike egenskaper som samsvar, nøyaktighet, duplisering, konsistens, gyldighet, datafullstendighet, osv. Neste i denne Hadoop Testing-opplæringen vil vi lære hvordan du tester Hadoop-applikasjoner.

Hvordan teste Hadoop-applikasjoner

Følgende figur gir en oversikt på høyt nivå over faser i testing av Big Data-applikasjoner

Test Hadoop-applikasjoner

Big Data Testing eller Hadoop Testing kan grovt sett deles inn i tre trinn

Trinn 1: Validering av dataoppsett

Det første trinnet i denne veiledningen for testing av big data omtales som pre-Hadoop-stadiet, og involverer prosessvalidering.

  • Data fra ulike kilder som RDBMS, weblogger, sosiale medier osv. bør valideres for å sikre at riktige data trekkes inn i systemet
  • Sammenligning av kildedata med dataene som er presset inn i Hadoop-systemet for å sikre at de samsvarer
  • Bekreft at riktige data er trukket ut og lastet inn på riktig HDFS-plassering

Verktøy som Talent, Datamaskin, kan brukes til validering av dataoppsett

Trinn 2: "MapReduce"-validering

Det andre trinnet er en validering av "MapReduce". I dette stadiet verifiserer Big Data-testeren forretningslogikkvalideringen på hver node og validerer dem deretter etter å ha kjørt mot flere noder, og sikrer at

  • Kartreduksjonsprosessen fungerer riktig
  • Regler for dataaggregering eller segregering implementeres på dataene
  • Nøkkelverdipar genereres
  • Validering av data etter Map-Reduce-prosessen

Trinn 3: Utdatavalideringsfase

Den siste eller tredje fasen av Hadoop-testing er utdatavalideringsprosessen. Utdatafilene er generert og klare til å bli flyttet til et EDW (Enterprise Data Warehouse) eller et annet system basert på kravet.

Aktiviteter i tredje trinn inkluderer

  • For å kontrollere at transformasjonsreglene er riktig brukt
  • For å sjekke dataintegriteten og vellykket datainnlasting i målsystemet
  • For å kontrollere at det ikke er datakorrupsjon ved å sammenligne måldataene med HDFS-filsystemdataene

Architecture Testing

Hadoop behandler svært store datamengder og er svært ressurskrevende. Derfor er arkitektonisk testing avgjørende for å sikre suksessen til Big Data-prosjektet ditt. Et dårlig eller feil utformet system kan føre til ytelsesforringelse, og systemet kan ikke oppfylle kravet. I det minste Ytelse og Failover test tjenester bør gjøres i et Hadoop-miljø.

Ytelsestesting inkluderer testing av jobbgjennomføringstid, minneutnyttelse, datagjennomstrømning og lignende systemmålinger. Mens motivet til Failover-testtjenesten er å verifisere at databehandling skjer sømløst i tilfelle svikt i datanoder

Ytelsestesting

Ytelsestesting for Big Data inkluderer to hovedhandlinger

  • Datainntak og gjennomgående: I dette stadiet verifiserer Big Data-testeren hvordan det raske systemet kan konsumere data fra ulike datakilder. Testing innebærer å identifisere en annen melding som køen kan behandle i en gitt tidsramme. Det inkluderer også hvor raskt data kan settes inn i det underliggende datalageret, for eksempel innsettingshastighet i en Mongo og Cassandra database.
  • Databehandling: Det innebærer å verifisere hastigheten som spørringene eller kartreduksjonsjobbene utføres med. Det inkluderer også testing av databehandlingen isolert når det underliggende datalageret er fylt inn i datasettene. For eksempel å kjøre Map Reduce-jobber på det underliggende HDFS
  • Underkomponentytelse: Disse systemene består av flere komponenter, og det er viktig å teste hver av disse komponentene isolert. For eksempel hvor raskt meldingen indekseres og forbrukes, MapReduce-jobber, søkeytelse, søk osv.
  • Tilnærming til ytelsestesting

    Ytelsestesting for big data-applikasjoner innebærer testing av enorme mengder strukturerte og ustrukturerte data, og det krever en spesifikk testmetode for å teste så massive data.

    Tilnærming til ytelsestesting

    Ytelsestesting utføres i denne rekkefølgen

    1. Prosessen begynner med innstillingen av Big data cluster som skal testes for ytelse
    2. Identifisere og designe tilsvarende arbeidsbelastninger
    3. Forbered individuelle klienter (egendefinerte skript opprettes)
    4. Utfør testen og analyser resultatet (Hvis målene ikke er nådd, juster komponenten og utfør på nytt)
    5. Optimal konfigurasjon

    Parametre for ytelsestesting

    Ulike parametere som skal verifiseres for ytelsestesting er

    • Datalagring: Hvordan data lagres i forskjellige noder
    • Commit-logger: Hvor stor commit-loggen får vokse
    • Samtidighet: Hvor mange tråder kan utføre skrive- og leseoperasjoner
    • Buffer: Still inn hurtigbufferinnstillingen "radbuffer" og "nøkkelbuffer."
    • Tidsavbrudd: Verdier for tidsavbrudd for tilkobling, tidsavbrudd for spørring osv.
    • JVM-parametre: Heap-størrelse, GC-samlingsalgoritmer, etc.
    • Kart redusere ytelsen: Sorterer, slå sammen osv.
    • Meldingskø: Meldingshastighet, størrelse osv.

    Testmiljøbehov

    Testmiljøet må avhenge av typen applikasjon du tester. For testing av Big data-programvare bør testmiljøet omfatte

    • Den skal ha nok plass til lagring og behandle en stor mengde data
    • Den skal ha en klynge med distribuerte noder og data
    • Den bør ha minimum CPU- og minneutnyttelse for å holde ytelsen høy for å teste Big Data-ytelsen

    Big data testing vs. Tradisjonell databasetesting

    Eiendommer Tradisjonell databasetesting Big data testing
    Data Testerarbeid med strukturerte data Tester jobber med både strukturerte og ustrukturerte data
    Testmetode Testmetoden er veldefinert og tidstestet Testmetoden krever fokusert FoU-innsats
    Teststrategi Testeren har muligheten til å velge "Sampling"-strategi manuelt eller "Exhaustive Verification"-strategi med automatiseringsverktøyet «Sampling»-strategi i Big data er en utfordring
    Infrastruktur Det krever ikke et spesielt testmiljø da filstørrelsen er begrenset Det krever et spesielt testmiljø på grunn av store datastørrelser og filer (HDFS)
    Valideringsverktøy Testeren bruker enten Excel-basert makroer eller UI-baserte automatiseringsverktøy Ingen definerte verktøy, utvalget er stort fra programmeringsverktøy som MapReduce til HIVEQL
    Testverktøy Testverktøy kan brukes med grunnleggende driftskunnskap og mindre opplæring. Det krever et spesifikt sett med ferdigheter og opplæring for å bruke et testverktøy. Verktøyene er også i begynnelsen, og over tid kan det komme opp med nye funksjoner.

    Verktøy som brukes i Big Data-scenarier

    Store data Cluster Big Data-verktøy
    NoSQL: CouchDB, Databaser MongoDB, Cassandra, Redis, ZooKeeper, HBase
    Kart reduksjon: Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume
    Lagring: S3, HDFS (Hadoop Distributed File System)
    Servere: Elastisk, Heroku, Elastic, Google App Engine, EC2
    i prosess R, Yahoo! Rør, Mechanical Turk, BigSheets, Datameer

    Utfordringer i Big Data-testing

    • Automatisering

      Automatiseringstesting for Big data krever noen med teknisk ekspertise. Automatiserte verktøy er heller ikke utstyrt for å håndtere uventede problemer som oppstår under testing

    • virtualisering

      Det er en av de integrerte fasene av testing. Virtuell maskinforsinkelse skaper timingproblemer i sanntidstesting av big data-ytelse. Det er også et problem å administrere bilder i Big data.

    • Stort datasett
      • Trenger å verifisere flere data og må gjøre det raskere
      • Trenger å automatisere testarbeidet
      • Trenger å kunne teste på tvers av forskjellige plattformer

    Utfordringer med ytelsestesting

    • Variert sett med teknologier: Hver delkomponent tilhører forskjellig teknologi og krever testing isolert
    • Utilgjengelighet av spesifikke verktøy: Ingen enkelt verktøy kan utføre ende-til-ende-testing. For eksempel NoSQL passer kanskje ikke for meldingskøer
    • Test scripting: En høy grad av skripting er nødvendig for å designe testscenarier og testcases
    • Test miljø: Den trenger et spesielt testmiljø på grunn av den store datastørrelsen
    • Overvåkningsløsning: Det finnes begrensede løsninger som kan overvåke hele miljøet
    • Diagnostisk løsning: En tilpasset løsning er nødvendig for å utvikle for å bore ned ytelsesflaskehalsområdene

    Sammendrag

    • Ettersom datateknikk og dataanalyse går videre til et neste nivå, er testing av store data uunngåelig.
    • Stordatabehandling kan være batch, sanntid eller interaktiv
    • 3 stadier av testing av Big Data-applikasjoner er validering av datatrinn, "MapReduce"-validering og utdatavalideringsfase
    • Architecture Testing er den viktige fasen av Big data-testing, ettersom dårlig utformet system kan føre til enestående feil og forringelse av ytelsen
    • Ytelsestesting for Big data inkluderer verifisering av datagjennomstrømning, databehandling og underkomponentytelse
    • Big data-testing er veldig forskjellig fra tradisjonell datatesting når det gjelder data, infrastruktur og valideringsverktøy
    • Big Data Testing-utfordringer inkluderer virtualisering, testautomatisering og håndtering av store datasett. Ytelsestesting av Big Data-applikasjoner er også et problem.