Apache Hive adalah kerangka kerja yang berada di atas Hadoop untuk melakukan kueri ad-hoc pada data di Hadoop. Hive mendukung HiveQL, yang mirip dengan SQL, tetapi tidak mendukung konstruksi SQL yang lengkap.
Hive menutupi permintaan HiveQL ke dalam program Java MapReduce dan kemudian mengirimkannya ke cluster Hadoop. Hasil yang sama dapat dicapai dengan menggunakan HiveQL dan Java MapReduce, tetapi menggunakan Java MapReduce akan membutuhkan banyak kode untuk ditulis / di-debug dibandingkan dengan HiveQL. Jadi, HiveQL meningkatkan produktivitas pengembang.
Untuk meringkas, Hive, melalui bahasa HiveQL, menyediakan abstraksi tingkat yang lebih tinggi atas pemrograman Java MapReduce. Seperti halnya abstraksi tingkat tinggi lainnya, ada sedikit overhead kinerja menggunakan HiveQL bila dibandingkan dengan Java MapReduce, tetapi komunitas Hive bekerja untuk mempersempit celah ini untuk sebagian besar skenario yang biasa digunakan.
Sepanjang garis yang sama, Babi memberikan abstraksi tingkat yang lebih tinggi dari MapReduce. Babi mendukung konstruksi PigLatin, yang dikonversi ke dalam program Java MapReduce dan kemudian diserahkan ke cluster Hadoop.
Sementara HiveQL adalah bahasa deklaratif seperti SQL, PigLatin adalah bahasa aliran data. Output dari satu konstruksi PigLatin dapat dikirim sebagai input ke konstruksi PigLatin lain dan seterusnya.
Beberapa waktu yang lalu, Cloudera menerbitkan statistik tentang karakter beban kerja dalam cluster Hadoop yang khas dan dapat dengan mudah diamati bahwa pekerjaan Pig dan Hive merupakan bagian yang baik dari pekerjaan dalam cluster Hadoop. Karena produktivitas pengembang yang lebih tinggi, banyak perusahaan memilih abstrak tingkat tinggi seperti Pig dan Hive. Jadi, kita bisa bertaruh akan ada banyak lowongan pekerjaan di sekitar Hive dan Babi jika dibandingkan dengan pengembangan MapReduce.
Meskipun buku Programming Pig diterbitkan pada Oktober 2011, buku Programming Hive diterbitkan lebih baru, pada Oktober 2012. Bagi mereka yang memiliki pengalaman bekerja dengan RDBMS, memulai dengan Hive akan menjadi pilihan yang lebih baik daripada memulai dengan Pig. Perhatikan juga bahwa bahasa PigLatin tidak terlalu sulit untuk memulai.
Untuk kluster Hadoop yang mendasarinya, transparan apakah pekerjaan Java MapReduce diajukan atau pekerjaan MapReduce diajukan melalui Hive dan Pig. Karena sifat berorientasi batch pekerjaan MapReduce, pekerjaan yang disampaikan melalui Hive dan Babi juga berorientasi batch.
Untuk persyaratan respons waktu nyata, Hive dan Pig tidak memenuhi persyaratan karena sifat berorientasi batch yang disebutkan sebelumnya dari pekerjaan MapReduce. Cloudera mengembangkan Impala, yang didasarkan pada Dremel (publikasi dari Google) untuk pertanyaan ad-hoc interaktif di atas Hadoop. Impala mendukung query seperti SQL dan kompatibel dengan HiveQL. Jadi, aplikasi apa pun yang dibangun di atas Hive harus bekerja dengan perubahan minimal dengan Impala. Perbedaan utama antara Hive dan Impala adalah bahwa sementara HiveQL dikonversi menjadi pekerjaan Java MapReduce, Impala tidak menyamarkan kueri SQL menjadi pekerjaan Java MapReduce.
Haruskah Anda pergi dengan Babi atau Sarang untuk persyaratan tertentu? Itu topik untuk blog lain.
Diterbitkan ulang dengan izin dari Praveen Sripati. Artikel asli dapat ditemukan di sini: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html