Big Data Testing Tutorial: Hva er, Strategi, Hvordan teste Hadoop

Innholdsfortegnelse:

Anonim

Big Data Testing

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

Big data er en samling av store datasett som ikke kan behandles ved bruk av tradisjonelle databehandlingsteknikker. Testing av disse datasettene innebærer forskjellige verktøy, teknikker og rammer å behandle. Big data er knyttet til dataoppretting, lagring, henting 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

I denne Big Data Testing tutorial vil du lære-

  • Hva er Big Data Testing Strategy?
  • Hvordan teste Hadoop-applikasjoner
  • Arkitekturtesting
  • Ytelsestesting
  • Performance Testing Approach
  • Parametere for ytelsestesting
  • Test miljøbehov
  • Big data Testing vs. Tradisjonell databasetesting
  • Verktøy som brukes i Big Data Scenarios
  • Utfordringer i Big Data Testing

Hva er Big Data Testing Strategy?

Å teste Big Data-applikasjonen er mer bekreftelse av databehandlingen i stedet for å teste programvarens individuelle funksjoner. Når det gjelder Big Data-testing, er ytelse og funksjonell testing nøklene.

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

Sammen med dette er datakvaliteten 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 databasetesting. Det innebærer å sjekke forskjellige egenskaper som samsvar, nøyaktighet, duplisering, konsistens, gyldighet, datafullstendighet, etc. Neste i denne Hadoop Testing-opplæringen vil vi lære å teste Hadoop-applikasjoner.

Hvordan teste Hadoop-applikasjoner

Følgende figur gir et høyt nivå oversikt over faser i Testing Big Data Applications

Big Data Testing eller Hadoop Testing kan deles opp i tre trinn

Trinn 1: Validering av datastaging

Det første trinnet i denne testdataveiledningen for store data blir referert til som pre-Hadoop-trinnet innebærer prosessvalidering.

  • Data fra forskjellige kilder som RDBMS, weblogger, sosiale medier osv. Bør valideres for å sikre at riktige data blir trukket inn i systemet
  • Sammenligning av kildedata med dataene som skyves inn i Hadoop-systemet for å sikre at de samsvarer
  • Kontroller at riktige data er hentet ut og lastet inn på riktig HDFS-plassering

Verktøy som Talend , Datameer, kan brukes til validering av datastaging

Trinn 2: "MapReduce" validering

Det andre trinnet er en validering av "MapReduce". I dette stadiet verifiserer Big Data-testeren valideringen av forretningslogikken på hver node og deretter validerer den etter å ha kjørt mot flere noder, og sørger for at

  • Map Reduce-prosessen fungerer riktig
  • Dataaggregerings- eller segregeringsregler er implementert på dataene
  • Nøkkelverdipar genereres
  • Validering av dataene etter Map-Reduce-prosessen

Trinn 3: Valideringsfase for utgang

Den siste eller tredje fasen av Hadoop-testing er utvalideringsprosessen. Utdatafilene genereres og er klare til å bli flyttet til et EDW (Enterprise Data Warehouse) eller ethvert 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

Arkitekturtesting

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

Ytelsestesting inkluderer testing av fullføringstid, minneutnyttelse, datakapasitet og lignende systemberegninger. Mens motivet til Failover-testtjenesten er å verifisere at databehandling skjer sømløst i tilfelle feil på datanoder

Ytelsestesting

Performance Testing for Big Data inkluderer to hovedhandlinger

  • Inntak av data og gjennom : I dette stadiet verifiserer Big Data-testeren hvordan det raske systemet kan konsumere data fra forskjellige 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ørringer eller kart reduserer jobber utføres. Det inkluderer også testing av databehandlingen isolert når den underliggende datalageret er fylt ut i datasettene. For eksempel å kjøre Map Reduce-jobber på den 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 blir indeksert og konsumert, MapReduce-jobber, spørringsytelse, søk osv.

Performance Testing Approach

Ytelsestesting for big data-applikasjon innebærer testing av store mengder strukturerte og ustrukturerte data, og det krever en spesifikk testtilnærming for å teste slike massive data.

Ytelsestesting utføres i denne rekkefølgen

  1. Prosessen begynner med innstillingen av Big data-klyngen som skal testes for ytelse
  2. Identifiser og utform tilsvarende arbeidsmengder
  3. Forbered individuelle kunder (egendefinerte skript blir opprettet)
  4. Utfør testen og analyserer resultatet (Hvis målene ikke oppnås, still inn komponenten og kjør den på nytt)
  5. Optimal konfigurasjon

Parametere for ytelsestesting

Forskjellige parametere som skal verifiseres for ytelsestesting er

  • Datalagring: Hvordan data lagres i forskjellige noder
  • Forpliktelseslogger: Hvor stor forpliktelsesloggen får vokse
  • Samtidighet: Hvor mange tråder som kan utføre skrive- og leseoperasjon
  • Cache: Still inn hurtigbufferinnstillingen "radbuffer" og "nøkkelbuffer."
  • Tidsavbrudd: Verdier for tidsavbrudd for tilkobling, tidsavbrudd for spørring osv.
  • JVM-parametere: Massestørrelse, GC-samlingsalgoritmer, etc.
  • Kart reduserer ytelsen: Sorterer, fletter osv.
  • Meldingskø: Meldingsfrekvens, størrelse osv.

Test miljø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 skal 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

Testing Approach

  • Testtilnærming er veldefinert og tidstestet
  • Testtilnærmingen krever fokusert FoU-innsats

Testing Strategi

  • Tester har muligheten til "Sampling" -strategi manuelt eller "Tømmende bekreftelse" -strategi av automatiseringsverktøyet
  • "Sampling" -strategi i Big data er en utfordring

Infrastruktur

  • Det krever ikke et spesielt testmiljø ettersom filstørrelsen er begrenset
  • Det krever et spesielt testmiljø på grunn av stor datastørrelse og filer (HDFS)

Valideringsverktøy

Tester bruker enten de Excel-baserte makroene eller UI-baserte automatiseringsverktøyene

Ingen definerte verktøy, området 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 med nye funksjoner.

Verktøy som brukes i Big Data Scenarios

Big 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

Oppbevaring:

  • S3, HDFS (Hadoop distribuert filsystem)

Servere:

  • Elastisk, Heroku, Elastisk, Google App Engine, EC2

Behandling

  • R, Yahoo! Pipes, Mechanical Turk, BigSheets, Datameer

Utfordringer i Big Data Testing

  • Automasjon

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

  • Virtualisering

    Det er en av de integrerte testfasene. Tidsforsinkelse for virtuell maskin skaper timingproblemer i sanntidstesting av stordata. Det er også vanskelig å administrere bilder i Big data.

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

Utfordringer for ytelsestesting

  • Ulike teknologisett : Hver underkomponent tilhører forskjellig teknologi og krever testing isolert
  • Utilgjengelighet av spesifikke verktøy : Ingen enkelt verktøy kan utføre end-to-end-testing. For eksempel kan NoSQL ikke passe for meldingskøer
  • Test scripting : Det kreves en høy grad av scripting for å designe testscenarier og testtilfeller
  • Testmiljø : Det trenger et spesielt testmiljø på grunn av den store datastørrelsen
  • Overvåkingsløsning : Det finnes begrensede løsninger som kan overvåke hele miljøet
  • Diagnostisk løsning : Det kreves en tilpasset løsning for å utvikle for å bore ytelsen på flaskehalsområdet

Sammendrag

  • Når datateknikk og dataanalyse går videre til et neste nivå, er Big Data-testing uunngåelig.
  • Stor databehandling kan være batch, sanntid eller interaktiv
  • Tre trinn med å teste Big Data-applikasjoner er
    • Validering av datastaging
    • Validering av "MapReduce"
    • Valideringsfase for utgang
  • Arkitekturtesting er den viktige fasen i Big Data-testing, da dårlig designet system kan føre til enestående feil og forringelse av ytelsen
  • Ytelsestesting for Big data inkluderer verifisering
    • Datakapasitet
    • Databehandling
    • 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.