„Apache Hive“ yra sistema, esanti „Hadoop“ viršuje, atliekant ad-hoc užklausas dėl „Hadoop“ duomenų. „Hive“ palaiko „HiveQL“, kuri yra panaši į SQL, tačiau nepalaiko visų SQL konstrukcijų.
„Hive“ paverčia „HiveQL“ užklausą „Java MapReduce“ programa ir pateikia ją į „Hadoop“ klasterį. Tą patį rezultatą galima pasiekti naudojant „HiveQL“ ir „Java MapReduce“, tačiau naudojant „Java MapReduce“ reikės parašyti / suderinti daug kodo, palyginti su „HiveQL“. Taigi, „HiveQL“ padidina kūrėjų produktyvumą.
Apibendrinant galima pasakyti, kad „Hive“ per „HiveQL“ kalbą teikia aukštesnio lygio „Java MapReduce“ programavimą. Kaip ir bet kuri kita aukšto lygio abstrakcija, naudojant „HiveQL“, palyginti su „Java MapReduce“, šiek tiek trūksta efektyvumo, tačiau „Hive“ bendruomenė stengiasi sumažinti šią spragą daugeliui dažniausiai naudojamų scenarijų.
Be to, „Pig“ teikia aukštesnį abstrakcijos lygį per „MapReduce“. „Pig“ palaiko „PigLatin“ konstrukcijas, kurios paverčiamos „Java MapReduce“ programa ir pateikiamos „Hadoop“ klasteriui.
Nors „HiveQL“ yra deklaratyvi kalba, tokia kaip SQL, „PigLatin“ yra duomenų srauto kalba. Vieno „PigLatin“ konstrukto išėjimas gali būti siunčiamas kaip įėjimas į kitą „PigLatin“ konstruktą ir pan.
Praėjus kiek laiko, Cloudera paskelbė statistinius duomenis apie darbo krūvį tipiniame „Hadoop“ klasteryje ir galima lengvai pastebėti, kad „Pig“ ir „Hive“ darbai sudaro didelę dalį „Hadoop“ klasterio darbo. Dėl didesnio kūrėjų produktyvumo daugelis kompanijų renkasi aukštesnio lygio santraukas, tokias kaip „Pig and Hive“. Taigi, galime lažintis, kad, palyginti su „MapReduce“ plėtra, „Avilyje“ ir „Kiaulėje“ bus daug darbo vietų.
Nors knyga „Programavimas kiaulėje“ buvo išleista 2011 m. Spalio mėn., Programa „programavimo avilys“ buvo išleista neseniai, 2012 m. Spalio mėn. Tiems, kurie turi darbo su RDBMS patirtį, būtų geriau pradėti dirbti su „aviliu“ nei pradėti nuo kiaulės. Taip pat atkreipkite dėmesį, kad „PigLatin“ kalbą pradėti nėra labai sunku.
Pagrindiniame „Hadoop“ klasteryje yra aišku, ar „Java MapReduce“ užduotis, ar „MapReduce“ užduotis pateikiama per „Hive“ ir „Pig“. Kadangi „MapReduce“ užduotys yra orientuotos į paketo pobūdį, per „Hive“ ir „Pig“ pateikiamos užduotys taip pat yra orientuotos į paketinį paketą.
Realaus laiko reagavimo reikalavimai „Avilys“ ir „Kiaulė“ neatitinka reikalavimų dėl anksčiau minėto „MapReduce“ užduočių pobūdžio. „Cloudera“ sukūrė „Impala“, pagrįstą „Dremel“ („Google“ leidinys), skirtą interaktyvioms ad-hoc užklausoms „Hadoop“ viršuje. „Impala“ palaiko SQL tipo užklausas ir yra suderinama su „HiveQL“. Taigi, visos „Hive“ viršuje esančios programos turėtų veikti su minimaliais „Impala“ pakeitimais. Pagrindinis skirtumas tarp „Hive“ ir „Impala“ yra tas, kad nors „HiveQL“ yra paverčiamas „Java MapReduce“ darbais, „Impala“ nepaverčia SQL užklausos į „Java MapReduce“ užduotis.
Ar turėtumėte vykti su kiaulėmis ar aviliais dėl tam tikro reikalavimo? Tai kito tinklaraščio tema.
Perpublikuotas gavus „Praveen Sripati“ leidimą. Originalų straipsnį galite rasti čia: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html
