Domov Trendy Krátké úvod do apache úlu a prasete

Krátké úvod do apache úlu a prasete

Anonim

Apache Hive je rámec, který sedí na vrcholu Hadoopu pro provádění ad-hoc dotazů na data v Hadoopu. Hive podporuje HiveQL, která je podobná SQL, ale nepodporuje kompletní konstrukty SQL.


Hive pokryje dotaz HiveQL do programu Java MapReduce a poté jej odešle do klastru Hadoop. Stejného výsledku lze dosáhnout pomocí HiveQL a Java MapReduce, ale použití Java MapReduce bude vyžadovat, aby bylo ve srovnání s HiveQL napsáno / debugováno hodně kódu. HiveQL tedy zvyšuje produktivitu vývojářů.


Abych to shrnul, Hive poskytuje prostřednictvím jazyka HiveQL vyšší úroveň abstrakce nad programováním Java MapReduce. Stejně jako u jiných abstrakcí na vysoké úrovni existuje ve srovnání s aplikací Java MapReduce trochu režie výkonu při použití HiveQL, ale komunita Hive pracuje na omezení této mezery pro většinu běžně používaných scénářů.


Na stejné lince poskytuje Pig vyšší úroveň abstrakce nad MapReduce. Prase podporuje konstrukty PigLatin, které jsou převedeny do programu Java MapReduce a poté odeslány do klastru Hadoop.



Zatímco HiveQL je deklarativní jazyk jako SQL, PigLatin je jazyk pro tok dat. Výstup jednoho konstruktu PigLatin lze odeslat jako vstup do jiného konstruktu PigLatin a tak dále.


Někdy zpět, Cloudera zveřejnila statistiky o charakteru pracovní zátěže v typickém clusteru Hadoop a lze snadno pozorovat, že úlohy Pig a Hive tvoří dobrou část úloh v clusteru Hadoop. Kvůli vyšší produktivitě vývojářů se mnoho společností rozhodlo pro abstrakty na vyšší úrovni, jako jsou Pig a Hive. Můžeme tedy vsadit, že v Hive and Pig bude ve srovnání s vývojem MapReduce spousta pracovních míst.



Přestože byla kniha Programming Pig vydána v říjnu 2011, kniha Programming Hive byla vydána nedávno, v říjnu 2012. Pro ty, kteří mají zkušenosti s prací s RDBMS, by bylo lepší začít s Hive, než začít s Pig. Také si všimněte, že jazyk PigLatin není příliš obtížný začít.


U základního klastru Hadoop je transparentní, zda je odeslána úloha Java MapReduce nebo úloha MapReduce prostřednictvím Hive and Pig. Kvůli dávkově orientované povaze úloh MapReduce jsou úlohy zadané prostřednictvím Hive a Pig také dávkově orientované.


Pokud jde o požadavky na odezvu v reálném čase, Hive and Pig nesplňuje požadavky kvůli dříve uvedené dávkově orientované povaze úloh MapReduce. Cloudera vyvinula Impala, která je založena na Dremel (publikace od Google) pro interaktivní ad-hoc dotazy nad Hadoopem. Impala podporuje dotazy podobné SQL a je kompatibilní s HiveQL. Jakékoli aplikace, které jsou postaveny na Úlu, by tedy měly s Impala pracovat s minimálními změnami. Hlavní rozdíl mezi Hive a Impala spočívá v tom, že zatímco HiveQL je převeden na úlohy Java MapReduce, Impala nezakrývá dotaz SQL do úloh Java MapReduce.


Měli byste jít s prasečím nebo Úlem pro konkrétní požadavek? To je téma pro další blog.


Znovu publikován se svolením Praveen Sripati. Původní článek naleznete zde: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Krátké úvod do apache úlu a prasete