En kort introduktion till Apache Hive och Pig

Författare: Eugene Taylor
Skapelsedatum: 8 Augusti 2021
Uppdatera Datum: 20 Juni 2024
Anonim
Pig Tutorial | Apache Pig Tutorial | What Is Pig In Hadoop? | Apache Pig Architecture | Simplilearn
Video: Pig Tutorial | Apache Pig Tutorial | What Is Pig In Hadoop? | Apache Pig Architecture | Simplilearn


Källa: Tsekhmister / Dreamstime.com

Hämtmat:

Hive och Pig ger båda en högre nivå abstraktion över MapReduce, men det finns några viktiga skillnader mellan dem som utvecklare bör känna till.

Apache Hive är ett ramverk som ligger ovanpå Hadoop för att göra ad-hocfrågor om data i Hadoop. Hive stöder HiveQL, som liknar SQL, men stöder inte de fullständiga konstruktionerna av SQL.

Hive täcker HiveQL-frågan i ett Java MapReduce-program och skickar sedan in det i Hadoop-klustret. Samma resultat kan uppnås med HiveQL och Java MapReduce, men att använda Java MapReduce kräver mycket kod för att skrivas / felsöks jämfört med HiveQL. Så, HiveQL ökar utvecklarens produktivitet.

Sammanfattningsvis ger Hive, via HiveQL-språk, en abstraktion på högre nivå över Java MapReduce-programmering. Som med alla andra abstraktion på hög nivå finns det lite prestandakostnader med HiveQL jämfört med Java MapReduce, men Hive-samhället arbetar för att minska detta gap för de flesta vanliga scenarier.

Längs samma linje ger gris en högre nivåabstraktion över MapReduce. Pig stöder PigLatin-konstruktioner som konverteras till Java MapReduce-programmet och sedan skickas till Hadoop-klustret.





Medan HiveQL är ett deklarativt språk som SQL, är PigLatin ett dataflödesspråk. Utgången från en PigLatin-konstruktion kan skickas som inmatning till en annan PigLatin-konstruktion och så vidare.

För en tid tillbaka publicerade Cloudera statistik om karaktären i ett typiskt Hadoop-kluster och det kan lätt observeras att Pig- och Hive-jobb utgör en bra del av jobben i ett Hadoop-kluster. På grund av den högre utvecklarproduktiviteten väljer många företag abstrakt på högre nivå som Pig and Hive. Så vi kan satsa på att det kommer att finnas många jobböppningar runt Hive och Pig jämfört med MapReduce-utvecklingen.



Även om Programming Pig-boken publicerades i oktober 2011, publicerades Programming Hive-boken mer nyligen, i oktober 2012. För dem som har erfarenhet av att arbeta med RDBMS, skulle komma igång med Hive vara ett bättre alternativ än att komma igång med Pig. Observera också att PigLatin-språket inte är så svårt att komma igång med.

För det underliggande Hadoop-klustret är det öppet om ett Java MapReduce-jobb skickas in eller ett MapReduce-jobb skickas via Hive och Pig. På grund av den batchorienterade karaktären hos MapReduce-jobb är de jobb som skickas genom Hive och Pig också batchorienterade i naturen.

För reaktionskrav i realtid uppfyller Hive och Pig inte kraven på grund av den tidigare nämnda batchorienterade karaktären hos MapReduce-jobb. Cloudera utvecklade Impala, som är baserad på Dremel (en publikation från Google) för interaktiva ad-hocfrågor ovanpå Hadoop. Impala stöder SQL-liknande frågor och är kompatibel med HiveQL. Så alla applikationer som är byggda ovanpå Hive bör fungera med minimala förändringar med Impala. Den största skillnaden mellan Hive och Impala är att medan HiveQL konverteras till Java MapReduce-jobb, impala Impala inte SQL-frågan till ett Java MapReduce-jobb.

Ska du gå med Pig eller Hive för ett visst krav? Det är ett ämne för en annan blogg.

Republiserades med tillstånd från Praveen Sripati. Originalartikel finns här: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html