Návod na testování velkých dat: Co je strategie, jak testovat Hadoop
Big Data Testování
Big Data Testování je testovací proces velké datové aplikace s cílem zajistit, aby všechny funkce velké datové aplikace fungovaly podle očekávání. Cílem testování velkých dat je zajistit, aby systém velkých dat běžel hladce a bez chyb při zachování výkonu a zabezpečení.
Velká data jsou sbírkou velkých datových sad, které nelze zpracovat tradičními výpočetními technikami. Testování Zpracování těchto datových sad zahrnuje různé nástroje, techniky a rámce. Velká data se týkají vytváření, ukládání, vyhledávání a analýzy dat, která je pozoruhodná z hlediska objemu, rozmanitosti a rychlosti. Můžete se dozvědět více o Big Data, Hadoop a MapReduce zde
Co je strategie testování velkých dat?
Testování Big Data aplikace je spíše ověřením jejího zpracování dat než testováním jednotlivých funkcí softwarového produktu. Pokud jde o testování velkých dat, testování výkonu a funkčnosti jsou klíče.
Ve strategii testování velkých dat ověřují inženýři QA úspěšné zpracování terabajtů dat pomocí komoditního clusteru a dalších podpůrných komponent. Vyžaduje vysokou úroveň testovacích dovedností, protože zpracování je velmi rychlé. Zpracování může být tří typů
Spolu s tím je kvalita dat také důležitým faktorem při testování Hadoop. Před testováním aplikace je nutné zkontrolovat kvalitu dat a mělo by být považováno za součást testování databáze. Zahrnuje kontrolu různých charakteristik, jako je shoda, přesnost, duplikace, konzistence, platnost, úplnost dat, atd. Dále v tomto tutoriálu Hadoop Testing se naučíme testovat aplikace Hadoop.
Jak testovat aplikace Hadoop
Následující obrázek poskytuje celkový přehled fází testování aplikací velkých dat
Big Data Testing nebo Hadoop Testing lze obecně rozdělit do tří kroků
Krok 1: Ověření datové fáze
První krok v tomto tutoriálu pro testování velkých dat se nazývá fáze před Hadoopem a zahrnuje validaci procesu.
- Data z různých zdrojů, např RDBMS, weblogy, sociální média atd. by měly být ověřeny, aby bylo zajištěno, že jsou do systému načtena správná data
- Porovnání zdrojových dat s daty vloženými do systému Hadoop, abyste se ujistili, že se shodují
- Ověřte, zda jsou extrahována správná data a načtena do správného umístění HDFS
Nástroje jako Talend, Datameer, lze použít pro ověření stagingu dat
Krok 2: Ověření „MapReduce“.
Druhým krokem je ověření „MapReduce“. V této fázi tester velkých dat ověřuje ověření obchodní logiky na každém uzlu a poté je ověří po spuštění proti více uzlům, čímž zajistí, že
- Proces Map Reduce funguje správně
- Na datech jsou implementována pravidla pro agregaci nebo segregaci dat
- Vygenerují se páry klíč-hodnota
- Ověření dat po procesu Map-Reduce
Krok 3: Fáze ověření výstupu
Poslední nebo třetí fází testování Hadoop je proces výstupní validace. Výstupní datové soubory jsou generovány a připraveny k přesunu do EDW (Enterprise Data Warehouse) nebo jakéhokoli jiného systému na základě požadavku.
Aktivity ve třetí etapě zahrnují
- Chcete-li zkontrolovat, zda jsou pravidla transformace správně aplikována
- Kontrola integrity dat a úspěšného načtení dat do cílového systému
- Chcete-li zkontrolovat, zda nedochází k poškození dat, porovnáním cílových dat s daty systému souborů HDFS
ArchiTestování tecture
Hadoop zpracovává velmi velké objemy dat a je vysoce náročný na zdroje. Proto je architektonické testování klíčové pro zajištění úspěchu vašeho projektu Big Data. Špatně nebo nesprávně navržený systém může vést ke snížení výkonu a systém nemusí splňovat požadavky. Alespoň, Test výkonu a přepnutí při selhání služby by měly být prováděny v prostředí Hadoop.
Testování výkonu zahrnuje testování času dokončení úlohy, využití paměti, datové propustnosti a podobných systémových metrik. Zatímco motivem služby Failover test je ověřit, že zpracování dat probíhá hladce v případě selhání datových uzlů
Testování výkonu
Testování výkonu pro velká data zahrnuje dvě hlavní akce
- Příjem dat a v průběhu: V této fázi tester velkých dat ověřuje, jak může rychlý systém spotřebovávat data z různých zdrojů dat. Testování zahrnuje identifikaci jiné zprávy, kterou může fronta zpracovat v daném časovém rámci. Zahrnuje také, jak rychle lze data vložit do základního úložiště dat, například rychlost vkládání do Mongo a Cassandra databáze.
Přístup k testování výkonu
Testování výkonu pro aplikace velkých dat zahrnuje testování obrovských objemů strukturovaných a nestrukturovaných dat a vyžaduje specifický testovací přístup k testování tak masivních dat.
Testování výkonu se provádí v tomto pořadí
- Proces začíná nastavením klastru velkých dat, který má být testován na výkon
- Identifikujte a navrhněte odpovídající pracovní zátěže
- Připravte jednotlivé klienty (vytvářejí se vlastní skripty)
- Proveďte test a analyzujte výsledek (Pokud cíle nejsou splněny, vylaďte komponentu a proveďte znovu)
- Optimální konfigurace
Parametry pro testování výkonu
Pro testování výkonu je třeba ověřit různé parametry
- Ukládání dat: Jak jsou data uložena v různých uzlech
- Protokoly potvrzení: Jak velký může protokol potvrzení narůst
- Souběžnost: Kolik vláken může provádět operace zápisu a čtení
- Ukládání do mezipaměti: Vylaďte nastavení mezipaměti „mezipaměť řádků“ a „mezipaměť klíčů“.
- Časové limity: Hodnoty pro časový limit připojení, časový limit dotazu atd.
- Parametry JVM: Velikost haldy, algoritmy sběru GC atd.
- Mapa snižuje výkon: Řazení, slučování atd.
- Fronta zpráv: Rychlost zpráv, velikost atd.
Potřeby testovacího prostředí
Testovací prostředí musí záviset na typu aplikace, kterou testujete. Pro testování softwaru pro velká data by testovací prostředí mělo zahrnovat
- Měl by mít dostatek prostoru pro ukládání a zpracovávat velké množství dat
- Měl by mít cluster s distribuovanými uzly a daty
- Měl by mít minimální využití CPU a paměti, aby byl výkon vysoký pro testování výkonu Big Data
Big data testování vs. Tradiční testování databáze
Nemovitosti | Tradiční testování databáze | Testování velkých dat |
---|---|---|
Data | Tester pracuje se strukturovanými daty | Tester pracuje se strukturovanými i nestrukturovanými daty |
Testovací přístup | Testovací přístup je dobře definovaný a prověřený časem | Testovací přístup vyžaduje soustředěné úsilí v oblasti výzkumu a vývoje |
Strategie testování | Tester má možnost provést strategii „vzorkování“ ručně nebo strategii „vyčerpávajícího ověření“ pomocí automatizačního nástroje | Strategie „vzorkování“ ve velkých datech je výzvou |
Infrastruktura | Nevyžaduje speciální testovací prostředí, protože velikost souboru je omezená | Vyžaduje speciální testovací prostředí kvůli velké velikosti dat a souborů (HDFS) |
Validační nástroje | Tester používá buď Excel makra nebo automatizační nástroje založené na uživatelském rozhraní | Žádné definované nástroje, rozsah je obrovský od programovacích nástrojů jako MapReduce až po HIVEQL |
Nástroje testování | Testovací nástroje lze používat se základními provozními znalostmi a menším zaškolením. | K ovládání testovacího nástroje je zapotřebí specifický soubor dovedností a školení. Nástroje jsou také ve fázi zrodu a časem mohou přijít s novými funkcemi. |
Nástroje používané ve scénářích velkých dat
Big dat Cluster | Nástroje pro velká data |
---|---|
NoSQL: | CouchDB, Databáze MongoDB, Cassandra, Redis, ZooKeeper, HBase |
MapReduce: | Hadoop, Úl, Prase, Kaskádové, Oozie, Kafka, S4, MapR, Flume |
Skladování: | S3, HDFS (Distribuovaný souborový systém Hadoop) |
Servery: | Elastický, Heroku, Elastické, Google App Engine, EC2 |
Zpracování | R, Yahoo! Trubky, Mechanical Turk, BigSheets, Datameer |
Výzvy v testování velkých dat
- Automatizace
Testování automatizace pro velká data vyžaduje někoho s technickými znalostmi. Také automatizované nástroje nejsou vybaveny tak, aby zvládly neočekávané problémy, které během testování nastanou
- Virtualizace
Je to jedna z nedílných fází testování. Latence virtuálního stroje způsobuje problémy s načasováním při testování výkonu velkých dat v reálném čase. Také správa obrázků ve velkých datech je problém.
- Velká datová sada
- Potřebujete ověřit více dat a musíte to udělat rychleji
- Potřeba automatizovat testovací úsilí
- Je třeba mít možnost testovat na různých platformách
Výzvy při testování výkonu
- Různorodá sada technologií: Každá dílčí komponenta patří k jiné technologii a vyžaduje testování v izolaci
- Nedostupnost konkrétních nástrojů: Žádný jednotlivý nástroj nemůže provést end-to-end testování. Například, NoSQL nemusí být vhodné pro fronty zpráv
- Testovací skriptování: K návrhu testovacích scénářů a testovacích případů je zapotřebí vysoký stupeň skriptování
- Testovací prostředí: Vyžaduje speciální testovací prostředí kvůli velkému objemu dat
- Monitorovací řešení: Existuje omezená řešení, která mohou monitorovat celé prostředí
- Diagnostické řešení: Je třeba vyvinout vlastní řešení, aby se prohloubily oblasti s omezeným výkonem
Shrnutí
- Vzhledem k tomu, že datové inženýrství a analýza dat postupují na další úroveň, je testování velkých dat nevyhnutelné.
- Zpracování velkých dat může být dávkové, v reálném čase nebo interaktivní
- 3 fáze testování aplikací Big Data jsou validace datové fáze, validace „MapReduce“ a fáze validace výstupu
- Architecture Testing je důležitou fází testování velkých dat, protože špatně navržený systém může vést k bezprecedentním chybám a snížení výkonu.
- Testování výkonu pro velká data zahrnuje ověření datové propustnosti, zpracování dat a výkonu dílčích komponent
- Testování velkých dat se velmi liší od tradičního testování dat, pokud jde o data, infrastrukturu a nástroje pro ověřování
- Výzvy testování velkých dat zahrnují virtualizaci, automatizaci testování a práci s velkými datovými sadami. Problémem je také testování výkonu Big Data aplikací.