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/