Handledning för Big Data Testing: Vad är, strategi, hur man testar Hadoop

Big Data testning

Big Data testning är en testprocess av en big data-applikation för att säkerställa att alla funktioner i en big data-applikation fungerar som förväntat. Målet med big data-testning är att se till att big data-systemet fungerar smidigt och felfritt samtidigt som prestanda och säkerhet bibehålls.

Big data är en samling stora datamängder som inte kan bearbetas med traditionella datortekniker. Testning av dessa datauppsättningar involverar olika verktyg, tekniker och ramverk att bearbeta. Big data relaterar till dataskapande, lagring, hämtning och analys som är anmärkningsvärt vad gäller volym, variation och hastighet. Du kan lära dig mer om Big Data, Hadoop och MapReduce här.

Vad är Big Data-teststrategi?

Att testa Big Data-applikationen är mer verifiering av dess databehandling snarare än att testa de individuella funktionerna i mjukvaruprodukten. När det kommer till Big data-testning, prestanda och funktionstestning är nycklarna.

I Big Data-teststrategin verifierar QA-ingenjörer framgångsrik bearbetning av terabyte data med hjälp av råvarukluster och andra stödjande komponenter. Det kräver en hög nivå av testkunskaper eftersom bearbetningen är mycket snabb. Bearbetningen kan vara av tre typer

Big Data testningsstrategi

Tillsammans med detta är datakvalitet också en viktig faktor vid Hadoop-testning. Innan du testar applikationen är det nödvändigt att kontrollera kvaliteten på data och bör betraktas som en del av databastestning. Det innebär att kontrollera olika egenskaper som överensstämmelse, noggrannhet, duplicering, konsistens, giltighet, datafullständighet, etc. Härnäst i denna handledning för Hadoop-testning kommer vi att lära oss hur man testar Hadoop-applikationer.

Hur man testar Hadoop-applikationer

Följande figur ger en översikt på hög nivå av faser i att testa Big Data-applikationer

Testa Hadoop-applikationer

Big Data Testing eller Hadoop Testing kan grovt delas in i tre steg

Steg 1: Validering av datalagring

Det första steget i denna handledning för big data-testning kallas pre-Hadoop-stadiet involverar processvalidering.

  • Data från olika källor som RDBMS, webbloggar, sociala medier etc. bör valideras för att säkerställa att korrekt data dras in i systemet
  • Jämför källdata med data som skickas in i Hadoop-systemet för att se till att de matchar
  • Verifiera att rätt data extraheras och laddas till rätt HDFS-plats

Verktyg som Talang, Datamästare, kan användas för validering av datasteg

Steg 2: "MapReduce"-validering

Det andra steget är en validering av "MapReduce". I det här skedet verifierar Big Data-testaren affärslogikvalideringen på varje nod och validerar dem sedan efter att ha körts mot flera noder, vilket säkerställer att

  • Map Reduce-processen fungerar korrekt
  • Regler för dataaggregering eller segregering implementeras på data
  • Nyckelvärdespar genereras
  • Validerar data efter Map-Reduce-processen

Steg 3: Utdatavalideringsfas

Det sista eller tredje steget av Hadoop-testning är utdatavalideringsprocessen. Utdatafilerna genereras och är redo att flyttas till ett EDW (Enterprise Data Warehouse) eller något annat system baserat på kravet.

Aktiviteter i tredje etappen är bl.a

  • För att kontrollera att omvandlingsreglerna tillämpas korrekt
  • För att kontrollera dataintegriteten och framgångsrik dataladdning i målsystemet
  • För att kontrollera att det inte finns någon datakorruption genom att jämföra måldata med HDFS-filsystemdata

Architecture Testing

Hadoop bearbetar mycket stora datamängder och är mycket resurskrävande. Därför är arkitektonisk testning avgörande för att säkerställa framgången för ditt Big Data-projekt. Ett dåligt eller felaktigt utformat system kan leda till prestandaförsämring, och systemet kan misslyckas med att uppfylla kravet. Åtminstone, Prestanda- och failover-test tjänster bör utföras i en Hadoop-miljö.

Prestandatester inkluderar testning av slutförandetid, minnesanvändning, datagenomströmning och liknande systemmått. Medan motivet för Failover-testtjänsten är att verifiera att databearbetning sker sömlöst i händelse av fel på datanoder

Prestandatester

Prestandatestning för Big Data inkluderar två huvudåtgärder

  • Dataintag och genomgående: I detta skede verifierar Big Data-testaren hur det snabba systemet kan konsumera data från olika datakällor. Testning innebär att identifiera ett annat meddelande som kön kan bearbeta inom en given tidsram. Det inkluderar också hur snabbt data kan infogas i det underliggande datalagret, till exempel insättningshastighet i en Mongo och Cassandra databas.
  • Databehandling: Det innebär att verifiera hastigheten med vilken frågorna eller kartminskningsjobben utförs. Det inkluderar också att testa databehandlingen isolerat när det underliggande datalagret är fyllt i datamängderna. Till exempel att köra Map Reduce-jobb på det underliggande HDFS
  • Underkomponentprestanda: Dessa system består av flera komponenter, och det är viktigt att testa var och en av dessa komponenter isolerat. Till exempel hur snabbt meddelandet indexeras och konsumeras, MapReduce-jobb, frågeprestanda, sökning etc.
  • Prestandatestningsmetod

    Prestandatestning för big data-applikationer involverar testning av enorma volymer av strukturerad och ostrukturerad data, och det kräver en specifik testmetod för att testa så massiva data.

    Prestandatestningsmetod

    Prestandatestning utförs i denna ordning

    1. Processen börjar med inställningen av Big data-klustret som ska testas för prestanda
    2. Identifiera och designa motsvarande arbetsbelastningar
    3. Förbered enskilda klienter (anpassade skript skapas)
    4. Utför testet och analysera resultatet (om målen inte uppnås, justera komponenten och kör om)
    5. Optimal konfiguration

    Parametrar för prestandatestning

    Olika parametrar som ska verifieras för prestandatestning är

    • Datalagring: Hur data lagras i olika noder
    • Commit-loggar: Hur stor commit-loggen får växa
    • Samtidighet: Hur många trådar kan utföra skriv- och läsoperationer
    • Cachning: Ställ in cache-inställningen "radcache" och "nyckelcache."
    • Timeouts: Värden för anslutningstimeout, frågetidsgräns, etc.
    • JVM-parametrar: Högstorlek, GC-insamlingsalgoritmer, etc.
    • Kartan minskar prestanda: Sorterar, sammanfogar osv.
    • Meddelandekö: Meddelandehastighet, storlek, etc.

    Testmiljöbehov

    Testmiljön måste bero på vilken typ av applikation du testar. För testning av stordataprogramvara bör testmiljön omfatta

    • Den ska ha tillräckligt med utrymme för lagring och bearbeta en stor mängd data
    • Den bör ha ett kluster med distribuerade noder och data
    • Den bör ha minimal CPU och minnesutnyttjande för att hålla prestanda hög för att testa Big Data-prestanda

    Big data Testing vs. Traditionell databastestning

    Våra Bostäder Traditionell databastestning Big data testning
    Data Testararbete med strukturerad data Tester arbetar med både strukturerad och ostrukturerad data
    Testmetod Testmetoden är väldefinierad och tidsbeprövad Testmetoden kräver fokuserade FoU-insatser
    Teststrategi Testaren har möjlighet att välja "Sampling"-strategin manuellt eller "Exhaustive Verification"-strategin med automationsverktyget "Sampling"-strategi i Big data är en utmaning
    Infrastruktur Det kräver ingen speciell testmiljö eftersom filstorleken är begränsad Det kräver en speciell testmiljö på grund av stor datastorlek och filer (HDFS)
    Valideringsverktyg Testaren använder antingen den Excel-baserade makron eller UI-baserade automationsverktyg Inga definierade verktyg, utbudet är stort från programmeringsverktyg som MapReduce till HIVEQL
    Testverktyg Testverktyg kan användas med grundläggande driftkunskaper och mindre utbildning. Det kräver en specifik uppsättning färdigheter och utbildning för att använda ett testverktyg. Verktygen är också i sitt begynnande stadium och med tiden kan de komma med nya funktioner.

    Verktyg som används i Big Data Scenarios

    Stora data Cluster Big Data-verktyg
    NoSQL: CouchDB, Databaser MongoDB, Cassandra, Redis, ZooKeeper, HBase
    MapReduce: Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume
    Förvaring: S3, HDFS (Hadoop Distributed File System)
    servrar: Elastisk, Heroku, Elastic, Google App Engine, EC2
    Bearbetning R, Yahoo! Pipes, Mechanical Turk, BigSheets, Datameer

    Utmaningar i Big Data Testing

    • Automation

      Automationstestning för Big data kräver någon med teknisk expertis. Automatiserade verktyg är inte heller utrustade för att hantera oväntade problem som uppstår under testning

    • virtualisering

      Det är en av testets integrerade faser. Virtuell maskins latens skapar timingproblem i realtidstestning av big data-prestanda. Det är också krångligt att hantera bilder i Big data.

    • Stor datauppsättning
      • Behöver verifiera mer data och behöver göra det snabbare
      • Behöver automatisera testarbetet
      • Behöver kunna testa på olika plattformar

    Prestandatestningsutmaningar

    • Olika uppsättningar av tekniker: Varje delkomponent tillhör olika teknologier och kräver separat testning
    • Otillgänglighet av specifika verktyg: Inget enskilt verktyg kan utföra end-to-end-testning. Till exempel, NoSQL kanske inte passar för meddelandeköer
    • Testa skript: En hög grad av scripting behövs för att designa testscenarier och testfall
    • Testmiljö: Den behöver en speciell testmiljö på grund av den stora datastorleken
    • Övervakningslösning: Det finns begränsade lösningar som kan övervaka hela miljön
    • Diagnostisk lösning: en anpassad lösning krävs för att utveckla för att borra ner prestandaflaskhalsområdena

    Sammanfattning

    • När datateknik och dataanalys går vidare till nästa nivå är Big data-testning oundviklig.
    • Stordatabehandling kan vara batch, realtid eller interaktiv
    • Tre steg av att testa Big Data-applikationer är validering av datasteg, "MapReduce"-validering och utdatavalideringsfas
    • Architecture Testning är den viktiga fasen av Big data-testning, eftersom dåligt utformade system kan leda till oöverträffade fel och försämring av prestanda
    • Prestandatester för Big data inkluderar verifiering av datagenomströmning, databearbetning och underkomponentprestanda
    • Big data-testning skiljer sig mycket från traditionell datatestning när det gäller data, infrastruktur och valideringsverktyg
    • Big Data Testing-utmaningar inkluderar virtualisering, testautomatisering och hantering av stora dataset. Prestandatestning av Big Data-applikationer är också ett problem.