Apache Hive je rámec, ktorý sedí na vrchole spoločnosti Hadoop na vykonávanie ad-hoc dotazov na údaje v Hadoop. Úľ podporuje HiveQL, ktorý je podobný SQL, ale nepodporuje úplné konštrukty SQL.
Úľ zakryje dotaz HiveQL do programu Java MapReduce a potom ho odošle do klastra Hadoop. Rovnaký výsledok sa dá dosiahnuť pomocou HiveQL a Java MapReduce, ale použitie Java MapReduce si bude vyžadovať, aby sa v porovnaní s HiveQL napísalo / ladilo veľa kódu. HiveQL teda zvyšuje produktivitu vývojárov.
Aby som to zhrnul, Hive poskytuje prostredníctvom jazyka HiveQL vyššiu úroveň abstrakcie nad programovaním Java MapReduce. Podobne ako pri iných abstrakciách na vysokej úrovni existuje v porovnaní s programom Java MapReduce trochu režijného výkonu v porovnaní s programom Java MapReduce, ale komunita Hive sa snaží túto medzeru zmenšiť pre väčšinu bežne používaných scenárov.
V rovnakej línii poskytuje Pig vyššiu úroveň abstrakcie nad MapReduce. Prasa podporuje konštrukty PigLatin, ktoré sa prevádzajú do programu Java MapReduce a potom sa odosielajú do klastra Hadoop.
Zatiaľ čo HiveQL je deklaratívny jazyk, ako je SQL, PigLatin je jazyk pre tok údajov. Výstup jedného konštruktu PigLatin možno poslať ako vstup do iného konštruktu PigLatin a tak ďalej.
Pred nejakým časom Cloudera zverejnila štatistiku charakteru pracovnej záťaže v typickom klastri Hadoop a dá sa ľahko zistiť, že úlohy ošípaných a podregiónov tvoria veľkú časť úloh v klastri Hadoop. Kvôli vyššej produktivite vývojárov sa mnoho spoločností rozhodlo pre abstrakty na vyššej úrovni, ako sú Pig a Hive. Môžeme teda staviť, že v okolí Hive and Pig bude v porovnaní s vývojom MapReduce veľa pracovných miest.
Hoci kniha Programovanie ošípaných bola vydaná v októbri 2011, kniha Programovanie úľa bola vydaná nedávno, v októbri 2012. Pre tých, ktorí majú skúsenosti s prácou s RDBMS, by bolo lepšie začať s Hive, ako začať s prasaťom. Tiež si všimnite, že jazyk PigLatin nie je príliš zložitý na začatie.
Pre základný klaster Hadoop je transparentné, či sa odošle úloha Java MapReduce alebo či sa odošle úloha MapReduce prostredníctvom Hive and Pig. Kvôli dávkovo orientovanej povahe úloh MapReduce sú úlohy zadané prostredníctvom Hive a Pig tiež charakterizované dávkovo.
Pokiaľ ide o požiadavky na odozvu v reálnom čase, Hive a Pig nespĺňajú tieto požiadavky z dôvodu už spomenutej dávkovej povahy úloh MapReduce. Cloudera vyvinula Impala, ktorá je založená na publikácii spoločnosti Dremel (publikácia od spoločnosti Google) pre interaktívne ad-hoc otázky nad Hadoop. Impala podporuje dotazy podobné SQL a je kompatibilná s HiveQL. Preto by všetky aplikácie, ktoré sú postavené na vrchole Úľa, mali s Impalou pracovať s minimálnymi zmenami. Hlavný rozdiel medzi Hive a Impala je v tom, že zatiaľ čo HiveQL sa prevádza na úlohy Java MapReduce, Impala nezakrýva dotaz SQL do úloh Java MapReduce.
Mali by ste ísť s prasa alebo úľom pre konkrétnu požiadavku? To je téma pre iný blog.
Zverejnené so súhlasom Praveen Sripati. Pôvodný článok nájdete tu: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html