Apache Hive ir sistēma, kas atrodas virs Hadoop, lai veiktu ad-hoc vaicājumus par Hadoop datiem. Hive atbalsta HiveQL, kas ir līdzīgs SQL, bet neatbalsta pilnīgas SQL konstrukcijas.
Hive slēpj HiveQL vaicājumu Java MapReduce programmā un pēc tam iesniedz to Hadoop klasterim. To pašu rezultātu var sasniegt, izmantojot HiveQL un Java MapReduce, bet, izmantojot Java MapReduce, būs nepieciešams daudz koda uzrakstīšana / atkļūdošana, salīdzinot ar HiveQL. Tātad, HiveQL palielina izstrādātāju produktivitāti.
Rezumējot, Hive, izmantojot HiveQL valodu, nodrošina augstāka līmeņa abstrakciju, izmantojot Java MapReduce programmēšanu. Tāpat kā ar jebkuru citu augsta līmeņa abstrakciju, HiveQL, salīdzinot ar Java MapReduce, ir nedaudz veiktspējas, taču Hive kopiena strādā, lai mazinātu šo plaisu lielākajā daļā parasti izmantoto scenāriju.
Tajā pašā rindā Pig nodrošina augstāku abstrakcijas līmeni nekā MapReduce. Pig atbalsta PigLatin konstrukcijas, kuras tiek pārveidotas Java MapReduce programmā un pēc tam iesniegtas Hadoop klasterī.
Kamēr HiveQL ir deklaratīva valoda, piemēram, SQL, PigLatin ir datu plūsmas valoda. Vienas PigLatin konstrukcijas izvadi var nosūtīt kā ievadi citai PigLatin konstrukcijai utt.
Pēc kāda laika Kloudera publicēja statistiku par slodzes raksturu tipiskā Hadoop klasterī, un var viegli novērot, ka Cūku un Hive darbi veido lielu daļu Hadoop klastera darba vietu. Sakarā ar augstāku izstrādātāju produktivitāti, daudzi uzņēmumi izvēlas augstākas līmeņa kopsavilkumus, piemēram, Pig and Hive. Tātad, mēs varam saderēt, ka, salīdzinot ar MapReduce attīstību, stropā un cūkā būs daudz darba vietu.
Lai arī grāmata Programming Pig tika izdota 2011. gada oktobrī, Programming Hive grāmata tika publicēta nesen, 2012. gada oktobrī. Tiem, kuriem ir pieredze darbā ar RDBMS, labāks risinājums būtu sākt ar Hive, nekā sākt ar Pig. Ņemiet vērā arī to, ka PigLatin valodu nav īpaši grūti uzsākt.
Pamata Hadoop klasterim ir skaidrs, vai tiek iesniegts Java MapReduce darbs vai MapReduce darbs, izmantojot Hive un Pig. Tā kā MapReduce darba vietas ir orientētas uz raksturu, arī caur Hive un Pig iesniegtie darbi ir orientēti uz paketi.
Reālā laika reaģēšanas prasībām strops un cūka neatbilst prasībām, jo iepriekš minētais MapReduce darbavietu skaits bija orientēts uz paketi. Cloudera izstrādāja Impala, kuras pamatā ir Dremel (Google publikācija) interaktīviem ad-hoc vaicājumiem virs Hadoop. Impala atbalsta SQL līdzīgus vaicājumus un ir saderīgs ar HiveQL. Tātad visām lietojumprogrammām, kas ir izveidotas virs Hive, Impala jādarbojas ar minimālām izmaiņām. Galvenā atšķirība starp Hive un Impala ir tā, ka, lai gan HiveQL tiek pārveidots Java MapReduce darbos, Impala SQL vaicājumu neslēpj Java MapReduce darbos.
Vai jums vajadzētu doties ar cūku vai stropu pēc kādas noteiktas prasības? Tā ir cita emuāra tēma.
Pārpublicēts ar Praveen Sripati atļauju. Raksta oriģināls atrodams šeit: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html
