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.

    Oppsummer dette innlegget med: