Apache Hive adalah rangka kerja yang terletak di atas Hadoop untuk melakukan pertanyaan ad-hoc pada data di Hadoop. Sarang menyokong HiveQL, yang serupa dengan SQL, tetapi tidak menyokong pembentukan lengkap SQL.
Hive coverts query HiveQL ke dalam program Java MapReduce dan kemudian menyerahkannya ke cluster Hadoop. Hasil yang sama dapat dicapai dengan menggunakan HiveQL dan Java MapReduce, tetapi menggunakan Java MapReduce akan memerlukan banyak kode untuk ditulis / debugged dibandingkan dengan HiveQL. Oleh itu, HiveQL meningkatkan produktiviti pemaju.
Untuk meringkaskan, Hive, melalui bahasa HiveQL, menyediakan abstraksi tahap yang lebih tinggi ke atas pengaturcaraan Java MapReduce. Seperti mana-mana abstraksi tahap tinggi yang lain, ada sedikit overhed prestasi menggunakan HiveQL jika dibandingkan dengan Java MapReduce, tetapi komuniti Hive bekerja untuk mengecilkan jurang ini untuk kebanyakan senario yang biasa digunakan.
Sepanjang baris yang sama, Babi menyediakan abstraksi tahap yang lebih tinggi ke atas MapReduce. Babi menyokong pembinaan PigLatin, yang ditukar kepada program Java MapReduce dan kemudian dikemukakan kepada cluster Hadoop.
Walaupun HiveQL adalah bahasa perisytiharan seperti SQL, PigLatin adalah bahasa aliran data. Output satu pembentukan PigLatin boleh dihantar sebagai masukan kepada satu lagi pembinaan PigLatin dan sebagainya.
Beberapa ketika dahulu, Cloudera menerbitkan statistik mengenai watak beban kerja dalam kumpulan Hadoop yang tipikal dan dapat dilihat dengan mudah bahawa pekerjaan Pig dan Hive membentuk bahagian yang baik dalam pekerjaan dalam cluster Hadoop. Oleh kerana produktiviti pemaju yang lebih tinggi, banyak syarikat memilih untuk abstrak tahap yang lebih tinggi seperti Pig dan Hive. Oleh itu, kita boleh bertaruh akan terdapat banyak peluang pekerjaan di sekitar Hive dan Babi jika dibandingkan dengan pembangunan MapReduce.
Walaupun buku Pig Programming diterbitkan pada Oktober 2011, buku Pengaturcaraan Hive telah diterbitkan lebih baru, pada bulan Oktober 2012. Bagi mereka yang berpengalaman bekerja dengan RDBMS, bermula dengan Hive akan menjadi pilihan yang lebih baik daripada memulakan Babi. Juga ambil perhatian bahawa bahasa PigLatin tidak begitu sukar untuk dimulakan.
Bagi kluster Hadoop yang mendasarinya, ia adalah telus sama ada kerja Java MapReduce diserahkan atau kerja MapReduce diserahkan melalui Hive dan Babi. Kerana sifat yang berorientasikan batch dari MapReduce pekerjaan, pekerjaan yang disampaikan melalui Hive dan Babi juga berorientasikan batch.
Untuk keperluan tindak balas masa nyata, Hive dan Babi tidak memenuhi keperluan kerana sifat yang berorientasikan batch yang terdahulu dari PetaReduce pekerjaan. Cloudera mengembangkan Impala, yang berdasarkan Dremel (penerbitan dari Google) untuk pertanyaan iklan hokual interaktif di atas Hadoop. Impala menyokong pertanyaan seperti SQL dan serasi dengan HiveQL. Oleh itu, sebarang aplikasi yang dibina di atas sarang harus berfungsi dengan perubahan minimum dengan Impala. Perbezaan utama antara Sarang dan Impala adalah bahawa sementara HiveQL ditukar menjadi Peta JavaReduce pekerjaan, Impala tidak menyembunyikan query SQL ke dalam peta Java MapReduce.
Sekiranya anda pergi dengan Pig atau Hive untuk keperluan tertentu? Itulah topik untuk blog lain.
Diterbitkan semula dengan izin dari Praveen Sripati. Artikel asal boleh didapati di sini: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html