Hjem trender En kort introduksjon til apache bikube og gris

En kort introduksjon til apache bikube og gris

Anonim

Apache Hive er et rammeverk som ligger øverst på Hadoop for å gjøre ad-hoc-spørsmål om data i Hadoop. Hive støtter HiveQL, som ligner på SQL, men ikke støtter de komplette konstruksjonene av SQL.


Hive dekker HiveQL-spørringen i et Java MapReduce-program og sender den deretter inn til Hadoop-klyngen. Det samme resultatet kan oppnås ved bruk av HiveQL og Java MapReduce, men bruk av Java MapReduce vil kreve mye kode for å bli skrevet / feilsøkt sammenlignet med HiveQL. Så, HiveQL øker utviklerens produktivitet.


For å oppsummere, gir Hive, gjennom HiveQL-språk, et abstraksjon på høyere nivå over Java MapReduce-programmering. Som med all annen abstraksjon på høyt nivå, er det litt med ytelse overhead ved bruk av HiveQL sammenlignet med Java MapReduce, men Hive-samfunnet jobber for å begrense dette gapet for de fleste av de ofte brukte scenariene.


Langs den samme linjen gir grisen en abstraksjon på høyere nivå over MapReduce. Pig støtter PigLatin-konstruksjoner, som blir konvertert til Java MapReduce-programmet og deretter sendt til Hadoop-klyngen.



Mens HiveQL er et deklarativt språk som SQL, er PigLatin et datastrømsspråk. Utgangen fra en PigLatin-konstruksjon kan sendes som inngang til en annen PigLatin-konstruksjon og så videre.


For en tid tilbake publiserte Cloudera statistikk om arbeidsmengdekarakteren i en typisk Hadoop-klynge, og det kan lett observeres at Pig and Hive-jobber utgjør en god del av jobbene i en Hadoop-klynge. På grunn av høyere produktivitet for utviklere velger mange selskaper abstrakt på høyere nivå som Pig and Hive. Så vi kan satse på at det vil være mange stillinger rundt Hive og Pig sammenlignet med MapReduce-utviklingen.



Selv om Programming Pig-boken ble utgitt i oktober 2011, ble Programming Hive-boken utgitt mer nylig, i oktober 2012. For de som har erfaring med å jobbe med RDBMS, ville det å komme i gang med Hive være et bedre alternativ enn å komme i gang med Pig. Merk også at PigLatin-språket ikke er veldig vanskelig å komme i gang med.


For den underliggende Hadoop-klyngen er det gjennomsiktig om en Java MapReduce-jobb sendes inn eller en MapReduce-jobb sendes inn via Hive og Pig. På grunn av den batchorienterte naturen til MapReduce-jobber, er jobbene som sendes inn via Hive og Pig også batchorienterte i naturen.


For reaksjonskrav i sanntid oppfyller Hive og Pig ikke kravene på grunn av den tidligere omtalte batchorienterte karakteren av MapReduce-jobber. Cloudera utviklet Impala, som er basert på Dremel (en publikasjon fra Google) for interaktive ad-hoc-spørsmål på toppen av Hadoop. Impala støtter SQL-lignende spørsmål og er kompatibel med HiveQL. Så alle applikasjoner som er bygget på toppen av Hive, bør fungere med minimale endringer med Impala. Den største forskjellen mellom Hive og Impala er at mens HiveQL blir konvertert til Java MapReduce-jobber, omskaper Impala ikke SQL-spørringen til en Java MapReduce-jobber.


Bør du gå med Pig or Hive for et bestemt krav? Det er et tema for en annen blogg.


Republisert med tillatelse fra Praveen Sripati. Original artikkel finner du her: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

En kort introduksjon til apache bikube og gris