En kort introduktion til Apache Hive og gris

Forfatter: Eugene Taylor
Oprettelsesdato: 8 August 2021
Opdateringsdato: 20 Juni 2024
Anonim
Apache Spark Tutorial: Apache Spark Tutorial for Beginners | Apache Spark | OnlineLearningCenter
Video.: Apache Spark Tutorial: Apache Spark Tutorial for Beginners | Apache Spark | OnlineLearningCenter


Kilde: Tsekhmister / Dreamstime.com

Tag væk:

Hive og Pig giver begge en abstraktion på højere niveau i forhold til MapReduce, men der er et par centrale forskelle mellem dem, som udviklere bør kende.

Apache Hive er en ramme, der sidder øverst på Hadoop til at udføre ad-hoc forespørgsler om data i Hadoop. Hive understøtter HiveQL, der ligner SQL, men understøtter ikke de komplette konstruktioner af SQL.

Hive dækker HiveQL-forespørgslen i et Java MapReduce-program og sender den derefter til Hadoop-klyngen. Det samme resultat kan opnås ved hjælp af HiveQL og Java MapReduce, men brug af Java MapReduce kræver, at en masse kode skal skrives / debugges sammenlignet med HiveQL. Så HiveQL øger udviklerens produktivitet.

For at opsummere giver Hive gennem HiveQL-sprog et abstraktion på højere niveau over Java MapReduce-programmering. Som med enhver anden abstraktion på højt niveau er der en smule præstationsomkostning ved hjælp af HiveQL sammenlignet med Java MapReduce, men Hive-samfundet arbejder på at indsnævre dette hul i de fleste af de ofte anvendte scenarier.

På samme linje giver grisen en abstraktion på højere niveau over MapReduce. Pig understøtter PigLatin-konstruktioner, der konverteres til Java MapReduce-programmet og derefter indsendes til Hadoop-klyngen.





Mens HiveQL er et deklarativt sprog som SQL, er PigLatin et datastrømsprog. Outputtet fra en PigLatin-konstruktion kan sendes som input til en anden PigLatin-konstruktion og så videre.

For en tid tilbage offentliggjorde Cloudera statistikker om arbejdsbelastningskarakteren i en typisk Hadoop-klynge, og det kan let observeres, at grise- og Hive-job udgør en god del af jobbet i en Hadoop-klynge. På grund af den højere udviklerproduktivitet vælger mange virksomheder abstrakt på højere niveau som Pig and Hive. Så vi kan satse på, at der vil være en masse jobåbninger omkring Hive og Pig sammenlignet med MapReduce-udvikling.



Selvom Programming Pig-bogen blev udgivet i oktober 2011, blev Programming Hive-bogen udgivet for nylig, i oktober 2012. For dem, der har erfaring med at arbejde med RDBMS, ville det være en bedre mulighed at komme i gang med Hive end at komme i gang med Pig. Bemærk også, at PigLatin-sprog ikke er meget vanskeligt at komme i gang med.

For den underliggende Hadoop-klynge er det gennemsigtigt, om et Java MapReduce-job sendes eller et MapReduce-job indsendes gennem Hive og Pig. På grund af den batchorienterede karakter af MapReduce-job, er de job, der indsendes gennem Hive og Pig, også batchorienterede i naturen.

For reaktionskrav i realtid opfylder Hive og Pig ikke kravene på grund af den tidligere nævnte batchorienterede karakter af MapReduce-job. Cloudera udviklede Impala, som er baseret på Dremel (en publikation fra Google) til interaktive ad-hoc-forespørgsler oven på Hadoop. Impala understøtter SQL-lignende forespørgsler og er kompatibel med HiveQL. Så alle applikationer, der er bygget oven på Hive, skal fungere med minimale ændringer med Impala. Den største forskel mellem Hive og Impala er, at selvom HiveQL konverteres til Java MapReduce-job, importerer Impala ikke SQL-forespørgslen til et Java MapReduce-job.

Bør du gå med svin eller bikube for et bestemt krav? Det er et emne for en anden blog.

Genudgivet med tilladelse fra Praveen Sripati. Original artikel kan findes her: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html