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
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
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.
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.
Ytelsestesting utfรธres i denne rekkefรธlgen
- Prosessen begynner med innstillingen av Big data cluster som skal testes for ytelse
- Identifisere og designe tilsvarende arbeidsbelastninger
- Forbered individuelle klienter (egendefinerte skript opprettes)
- Utfรธr testen og analyser resultatet (Hvis mรฅlene ikke er nรฅdd, juster komponenten og utfรธr pรฅ nytt)
- 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.



