Acasă tendinţe O scurtă introducere pentru apache și porcul

O scurtă introducere pentru apache și porcul

Anonim

Apache Hive este un cadru care se află deasupra lui Hadoop pentru a face interogări ad-hoc cu privire la datele din Hadoop. Hive acceptă HiveQL, care este similar cu SQL, dar nu acceptă construcțiile complete ale SQL.


Hive acoperă interogarea HiveQL într-un program Java MapReduce și apoi o trimite în clusterul Hadoop. Același rezultat poate fi obținut folosind HiveQL și Java MapReduce, dar folosirea Java MapReduce va fi necesară scrierea / debugarea multor coduri în comparație cu HiveQL. Deci, HiveQL crește productivitatea dezvoltatorilor.


Pentru a rezuma, Hive, prin intermediul limbajului HiveQL, oferă o abstracție de nivel superior asupra programării Java MapReduce. Ca în cazul oricărei alte niveluri de abstractizare, există o performanță generală folosind HiveQL în comparație cu Java MapReduce, dar comunitatea Hive lucrează pentru a reduce acest decalaj pentru majoritatea scenariilor utilizate frecvent.


Pe aceeași linie, Pig asigură un nivel mai înalt de abstractizare peste MapReduce. Pig acceptă construcțiile PigLatin, care sunt transformate în programul Java MapReduce și apoi trimise la clusterul Hadoop.



În timp ce HiveQL este un limbaj declarativ precum SQL, PigLatin este un limbaj de flux de date. Rezultatul unei construcții PigLatin poate fi trimis ca intrare la o altă construcție PigLatin ș.a.


Cu ceva timp în urmă, Cloudera a publicat statistici despre caracterul volumului de muncă dintr-un cluster tipic Hadoop și se poate observa cu ușurință că locurile de muncă Pig și Hive constituie o bună parte a lucrărilor dintr-un cluster Hadoop. Datorită productivității mai mari a dezvoltatorilor, multe companii optează pentru rezumate de nivel superior, precum Pig și Hive. Deci, putem paria că vor exista o mulțime de deschideri de locuri de muncă în jurul stupului și porcului în comparație cu dezvoltarea MapReduce.



Deși cartea Programarea porcul a fost publicată în octombrie 2011, cartea Programare Hive a fost publicată mai recent, în octombrie 2012. Pentru cei care au experiență în lucrul cu RDBMS, începerea cu Hive ar fi o opțiune mai bună decât a începe cu Pig. De asemenea, rețineți că limbajul PigLatin nu este foarte greu de început.


Pentru clusterul Hadoop de bază, este transparent dacă este trimisă o lucrare Java MapReduce sau o lucrare MapReduce este trimisă prin Hive și Pig. Datorită naturii orientate pe lot a locurilor de muncă MapReduce, lucrările trimise prin Hive și Pig sunt, de asemenea, orientate pe lot.


Pentru cerințele de răspuns în timp real, Hive și Pig nu îndeplinesc cerințele din cauza naturii menționate anterior, orientată pe loturi de locuri de muncă MapReduce. Cloudera a dezvoltat Impala, care se bazează pe Dremel (o publicație de la Google) pentru interogări ad-hoc interactive în partea de sus a Hadoop. Impala acceptă interogări asemănătoare SQL și este compatibil cu HiveQL. Deci, orice aplicație care este construită în partea de sus a stupului ar trebui să funcționeze cu modificări minime cu Impala. Diferența majoră dintre Hive și Impala este că, în timp ce HiveQL este convertit în locuri de muncă Java MapReduce, Impala nu ascunde interogarea SQL într-un job Java MapReduce.


Ar trebui să mergi cu porc sau stup pentru o anumită cerință? Acesta este un subiect pentru un alt blog.


Republicată cu permisiunea Praveen Sripati. Articolul original poate fi găsit aici: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

O scurtă introducere pentru apache și porcul