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
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
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.
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.
Prestandatestning utförs i denna ordning
- Processen börjar med inställningen av Big data-klustret som ska testas för prestanda
- Identifiera och designa motsvarande arbetsbelastningar
- Förbered enskilda klienter (anpassade skript skapas)
- Utför testet och analysera resultatet (om målen inte uppnås, justera komponenten och kör om)
- 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.