facebook LinkedIN LinkedIN - follow
IT SYSTEMS 12/2013 , AI a Business Intelligence

Hadoop: základní nedostatky vyřešeny



ProfinitKoncept zpracování dat, který tvoří základ Hadoop, vznikl v Googlu už v roce 2003. Hadoop se sestává z většího nebo menšího počtu komoditních počítačů (tedy počítačů s nízkou cenou a s vlastním diskem i CPU) spojených do jednoho celku, clusteru. Tyto počítače dohromady pracují jako celek, ale nesdílejí žádnou část. Tento fakt znamená vysokou odolnost proti výpadkům a lineární škálovatelnost, kdy potřebný nárůst výkonu lze zajistit jednoduchým přidáním nových počítačů do clusteru.


Samotný Hadoop tvoří několik základních konceptů. Prvním z nich je způsob uložení dat, který je v terminologii Hadoop nazván HDFS (Hadoop Distributed File System). Data jsou před uložením rozdělena na malé části (obvykle 64 MB) a každá z těchto částí je uložena duplicitně (obvykle třikrát) na disky počítačů. V porovnání se současným „obvyklým“ IT světem se přístup Hadoop nejvíce liší tím, že jsou data uložena u procesoru (na lokálním disku) a nikoliv na diskovém poli, jak je dnes běžné. Princip duplicitního uložení se pak stará o to, abychom při výpadku o žádná data nepřišli, a především eliminuje ve standardním IT světě nejpomalejší část zpracování dat, kterou je vyhledání dat na disku. Rozmístěním dat na mnoho disků se vliv tohoto parametru při zpracování dat výrazně sníží. Druhým konceptem je provedení výpočtu nad daty, tedy v terminologii Hadoop MapReduce. Tento výpočet probíhá ve dvou fázích. Nejdříve se v kroku Map nad každým kouskem uložených dat v distribuovaném systému uskuteční první část výpočtu. Tímto způsobem lze zpracovávat i velké objemy dat vysoce paralelním způsobem. Jednoduchým přidáním uzlů do Hadoop dosáhneme navýšení výpočetního výkonu. Druhá fáze výpočtu (Reduce) pak doplňuje schopnost poskládat výsledky z fáze Map dohromady (například agregace apod.). I tato fáze je prováděna paralelně na více uzlech. V tomto případě je zásadním odlišením od současného IT světa fakt, že tyto distribuované výpočty může psát každý, kdo pochopil principy psaní MapReduce algoritmů, a navíc ve velkém výčtu programovacích jazyků. Primárním jazykem pro psaní MapReduce je Java, ale s využitím utility Hadoop streaming lze například použít i jednoduchý skriptovací jazyk, jako je Python nebo Perl.

Práce s Hadoop pomocí SQL

Ovšem pouze výše uvedené principy by na stoupající popularitu Hadoop zřejmě nestačili. Už v Googlu zjistili, že Hadoop pouze s komponentami HDFA a MapReduce je pro většinu jejich zaměstnanců oříšek, protože jsou (jako celý dnešní IT svět) zvyklí na zpracování dat používat SQL jazyk. A tak vznikl Hive, způsob, jak využít všechny schopnosti Hadoop stejným způsobem, jaký používají v IT všichni dnes a denně, tedy psaním SQL dotazů. Hive „zařídí“ překlad mezi SQL a MapReduce. Pokud tedy nakopírujete soubor do HDFS a popíšete pro Hive jeho strukturu, můžete s ním začít pracovat pomocí SQL.

Možnost pracovat s daty v Hadoop pomocí SQL, a co nevíce snížit dobu návratu výsledku, je v současné době jedním z nejvíce exponovaných témat a každý distributor Hadoop se snaží nabídnout své řešení. Za pozornost určitě stojí iniciativa dvou současných lídrů vývoje a poskytovatelů distribuce Hadoop, firem Cloudera a Hortonworks.

Cloudera se vydala směrem k vlastnímu řešení nazvaným Impala. Impala stejně jako Hive nabízí možnost pracovat s daty v Hadoop pomocí SQL s tím rozdílem, že o této komponentně Hadoop se již koncepčněji přemýšlí jako o databázi. Ke slovu se tedy dostávají pojmy jako optimalizátor či indexy. Rychlost získání výsledku dotazu se v Impale již blíží reálné databázi (záleží na typu dotazu). Je samozřejmostí, že Impala pracuje se stejnými daty (a metadaty) jako Hive, tedy opět platí schopnost práce s daty bez nutnosti jejich přípravy. V současné době Impala nepodporuje všechny vlastnosti Hive (například UDF), ale tímto směrem se půjde při dalším vývoji.

Hortonworks se ubírají jiným směrem. Jejich projekt Stinger se zaměřil na zvýšení rychlosti zpracování dat pomocí Hive. Změnou komunikace mezi jednotlivými kroky MapReduce dokázal zrychlit výpočty (opět podle typu dotazu) až stokrát.

V současné době je distribucí Hadoop na trhu již velké množství a každý z velkých hráčů v oboru IT má svou vlastní distribuční síť. Například Hadoop pro Windows aktuálně poskytuje i Microsoft (ve spolupráci s Hortonworks).

Jak je to s praktickým využitím?

Na začátku měl Hadoop několik základních nedostatků, které bylo potřeba vyřešit. Tím zásadním byla vnitřní architektura nepodporující vysokou dostupnost, dále vysoká komplexnost prostředí a s tím svázána náročnost administrace (upgrade, distribuce konfigurací apod.) a velmi dynamický vývoj chrlící nové komponenty Hadoop, který přinášel nekompatibilitu mezi jednotlivými částmi a problematickou skladbu potřebného prostředí.

Za poslední dva roky se Hadoopu povedlo všechna tato úskalí překonat. Vysoká dostupnost je k dispozici v rámci změny architektury v Hadoop 2. Každý z distributorů již dodává nástroje na management softwarových komponent a hardwarových uzlů architektury (např. Cloudera Manager) a každý distributor také dodává svou distribuci. To je vyzkoušená a otestovaná kombinace komponent Hadoop doplněná o případnou podporu ze strany distributora (a pro velké firmy je to nezbytná podmínka pro provozování Hadoop v produkčním prostředí).

V současné době je Hadoop stále ještě poměrně nová technologie, nicméně již nyní i v České republice existují jeho velké implementace. Hadoop využívá například Seznam.cz nebo Mall.cz a typickým implementátorem této technologie jsou telco operátoři, kteří implementují Hadoop většinou centrálně a poskytují jeho kapacity svým dcerám. Skutečné využití je i zde spíše na začátku a teprve se hledá.

Hadoop je vyvíjený jako opensource software pod záštitou Apache Software Foundation. Na jeho bázi jsou postavena mnohá komerčně dodávaná řešení pro distribuci, zpracování a analýzu big dat.

Rozvoj Hadoop velmi souvisí s dalším rozvojem oboru analýzy dat pomocí pokročilých matematických metod. Datový analytik velmi často potřebuje data, která nenajde v datovém skladu, ale někdy i ta, která z podstaty věci do datového skladu nepatří. V těchto případech při současném vzoru IT architektury zeje díra, do které by Hadoop velmi hezky zapadl. Pro tyto situace Hadoop navíc poskytuje ještě jednu funkcionalitu se kterou současná architektura zatím napočítá, a tou je zpracování nestrukturovaných dat. Jestliže skutečně najde praktické využití zpracování dat například z Facebooku nebo LinkedIn (Twitter v našich končinách zatím není tak zásadním zdrojem dat jako v jiným zemích), pak je minimálně pro jejich uložení, ale i pro zpracování (v případě schopnosti pouštět analytické algoritmy v distribuovaném prostředí) Hadoop ideální.

Zatím určitě největším omezením Hadoop je nedostatek (a tedy také vysoká cena) lidí, kteří mají potřebné znalosti. Ovšem i to se s narůstající popularitou technologie Hadoop mění.

K čemu ten Hadoop vlastně je?

V současné době již existují komponenty Hadoop, které umožňují zpracovat data podobným způsobem jako v datovém skladu. Je ale třeba zdůraznit, že filozofie zpracování dat se v datovém skladu a v Hadoop velmi liší. Tedy technologická omezení, která způsobují, že něco nejde udělat, jsou stále menší a je téměř jisté, že se budou nadále zmenšovat. Omezením určitě zůstává to, že jde o novou technologii se vším, co se k tomuto faktu vztahuje. Tedy nedostatek kvalifikovaných lidí, neochota jít do něčeho nového a nevyzkoušeného. Ovšem to základní omezení je zřejmé. V současné době je Hadoop implementován v drtivé většině tam, kde je velký objem dat. Propojení technologie Hadoop a datové analytiky v době, kdy objemy dat stoupají exponenciálně, je více než zřejmé. V okamžiku, kdy se ukáže (pokud se tak stane), že zpracování stále vzrůstajícího objemu dat, která mají organizace například o svých zákaznících, přináší společnostem zisky, teprve pak se začne hledat vhodné řešení pro efektivní práci s těmito daty.

Pavel Janča Pavel Janča
Autor působí jako senior advisor pro oblast data management ve společnosti Profinit.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.