Mengenal Apache Pig dan Apache Hive




Kedua tools ini sebenarnya adalah program yang membantu untuk membuat program Map Reduce di Hadoop. Map Reduce bisa dibuat dengan menggunakan bahasa pemrograman pada umumnya misalnya Java lalu dijalankan di Hadoop. Akan tetapi, langkah ini biasanya melibatkan berbaris-baris kode dan juga sejumlah proses seperti coding, packaging, dan menjalankan program Map Reducenya sendiri. Untuk mengatasi kerepotan-kerepotan itulah kedua tools ini hadir.

Dengan menggunakan salah satu dari tools tersebut Map Reduce bisa dikerjakan dengan beberapa baris kode yang lebih singkat dari cara konvensional dan bisa langsung dijalankan karena baik Hive ataupun Pig yang akan berhubungan langsung dengan Hadoop untuk menjalankannya. Kedua tools ini sebenarnya adalah program yang membantu untuk membuat program Map Reduce di Hadoop.

Map Reduce bisa dibuat dengan menggunakan bahasa pemrograman pada umumnya misalnya Java lalu dijalankan di Hadoop. Akan tetapi, langkah ini biasanya melibatkan berbaris-baris kode dan juga sejumlah proses seperti coding, packaging, dan menjalankan program Map Reducenya sendiri. Untuk mengatasi kerepotan-kerepotan itulah kedua tools ini hadir. Dengan menggunakan salah satu dari tools tersebut Map Reduce bisa dikerjakan dengan beberapa baris kode yang lebih singkat dari cara konvensional dan bisa langsung dijalankan karena baik Hive ataupun Pig yang akan berhubungan langsung dengan Hadoop untuk menjalankannya.

Apache Pig adalah tool yang awalnya dikembangkan dan digunakan oleh Yahoo. Yahoo kemudian merilis Apache Pig untuk Apache sehingga bisa dikembangkan dan digunakan secara luas. Apache Pig lebih cocok digunakan untuk proses ETL (Extract-transform-load). Apache Pig terdiri dari dua jenis komponen. Pig Latin dan Pig Runtime. Pig Latin adalah bahasa yang digunakan di Pig untuk membuat Map Reduce. Pig Latin mengubah syntax low-level dari Map Reduce sehingga menjadi bahasa yang mudah dimengerti. Pig Runtime mengubah dan menjalankan script dari Pig Latin menjadi Map Reduce di Hadoop.
Contoh script Pig adalah


a = load '/user/hue/word_count_text.txt';
b = foreach a generate flatten(TOKENIZE((chararray)$0)) as word;
c = group b by word;
d = foreach c generate COUNT(b), group;
store d into '/user/hue/pig_wordcount';

Script diatas adalah script Pig untuk menghitung kemunculan huruf di file word_count_text.txt. Di script tersebut tampak bahwa proses penghitugan kemunculan huruf terdiri dari beberapa baris. Setiap baris merupakan suatu sub proses sendiri. Antara lain sub proses pengambilan file teks, sub proses mengambil semua huruf dari file teks, sub proses pengelompokan huruf, sub proses penghitungan dari setiap huruf, dan yang terakhir sub proses penulisan hasil penghitungan ke HDFS Hadoop.
Penyusunan proses menjadi beberapa baris yang mudah dipahami ini adalah kekuatan utama Pig. Sehingga bagi yang tidak mengerti SQL atau teknologi datawarehouse lainnya bisa cepat menguasai Pig.

Apache Hive adalah tool selain Apache Pig untuk membentuk program Map Reduce. Apache Hive pertama kali dikembangkan oleh Facebook untuk melakukan data warehouse pada cluster Hadoop mereka yang sangat banyak. Selanjutnya Hive disumbangkan ke Apache Foundation untuk dikembangkan oleh komunitas open source. Hive lebih ditujukan untuk proses data warehouse diatas HDFS.

Perbedaan mendasar antara Apache Hive dan Apache Pig adalah cara penulisan proses dalam membentuk proses Map Reduce. Kalau pada Apache Pig proses dibagi menjadi beberapa baris yang masing-masing adalah sub proses yang logis dalam memproses dan menganalisis data. Sedangkan pada Apache Hive proses Map Reduce dituliskan dengan gaya yang sangat mirip dengan SQL yang pada umumnya ada di RDBMS.
Contoh Script Hive yang menghitung kemunculan huruf

CREATE TABLE word_text(word STRING)
COMMENT 'This is the word table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n';
LOAD DATA INPATH 'hdfs:/user/hue/word_count_text.txt' INTO TABLE word_text;
SELECT word, count(*) as count FROM word_text GROUP BY word;

Seperti terlihat pada script Hive diatas, tampak sekali kemiripan antara Script Hive dengan SQL. Script Hive diatas terdiri dari tiga statement yang masing-masing diakhiri dengan semi-colon (;).  Bagian pertama adalah membentuk tabel yang akan menampung semua kata. Bagian kedua adalah menarik semua kata dari file di HDFS ke dalam tabel. Sedangkan bagian ketiga adalah SQL query yang bisa dilakukan terhadap data yang sudah dimasukkan ke tabel. Kita bisa melakukan berbagai query seperti SQL pada tabel yang sudah kita bentuk sehingga tidak hanya terbatas pada satu query saja. Output dari query tersebut bisa langsung ke layar, bisa ke file atau ke sistem eksternal menggunakan tool tambahan seperti Apache Thrift atau Apache Avro.

Untuk pertanyaan mana yang lebih baik antara Apache Hive dan apache Pig, maka jawabnnya sangat tergantung. Tergantung dari kebutuhan  dan dari situasi dan kondisi. Saya pribadi memilih kalau bisa dilakukan oleh Apache Hive akan memilih menggunakan Hive daripada Pig. Karena Hive cukup modular sehingga bisa di gabungkan dengan banyak tool lain seperti Spring, Apache Thrift dan Apache Avro. Pig sepertinya bisa juga untuk integrasi ini cuma saya belum menjumpai contoh yang cukup banyak. In the end, keputusan tetap di tangan Anda.

Sebenarnya ada satu lagi tool untuk membuat Map Reduce bernama Sawzall. Sawzall dikembangkan pertama kali oleh Google. Tetapi sayangnya Sawzall ini masih banyak kekurangan sehingga tidak digunakan secara luas. Contoh kekurangannya adalah tidak ada fungsi aggregator yang mengumpulkan data dari HDFS. Entah memang belum dikembangkan atau bagian itu memang belum di buka oleh Google. Mungkin nanti jika Sawzall sudah cukup mature akan dibahas juga disini.

sumber : https://openbigdata.wordpress.com/2014/09/21/apache-pig-dan-apache-hive/
Blogger
Disqus
Pilih Sistem Komentar Yang Anda Sukai

No comments