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ů

Strategie testování velkých dat

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

Testování aplikací Hadoop

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.
  • Zpracování dat: Zahrnuje ověření rychlosti, s jakou jsou prováděny dotazy nebo úlohy redukce mapy. Zahrnuje také testování zpracování dat v izolaci, když je základní úložiště dat naplněno datovými sadami. Například spuštění úloh Map Reduce na podkladu HDFS
  • Výkon dílčích komponent: Tyto systémy se skládají z více komponent a je nezbytné testovat každou z těchto komponent samostatně. Například, jak rychle je zpráva indexována a spotřebována, úlohy MapReduce, výkon dotazů, vyhledávání atd.
  • 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.

    Přístup k testování výkonu

    Testování výkonu se provádí v tomto pořadí

    1. Proces začíná nastavením klastru velkých dat, který má být testován na výkon
    2. Identifikujte a navrhněte odpovídající pracovní zátěže
    3. Připravte jednotlivé klienty (vytvářejí se vlastní skripty)
    4. Proveďte test a analyzujte výsledek (Pokud cíle nejsou splněny, vylaďte komponentu a proveďte znovu)
    5. 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í.