Apache Pig ile Veri İşleme

Hadoop üzerindeki verileri işlemek amacıyla SQL syntax’ına benzer bir dil olan Apache Pig projesini inceliyorum. Örnek olarak log dosyalarındaki ip adreslerini gruplayarak gösteren bir Pig scripti yazdım, şöyle:

/**
* @author haqen
*/
register pig-utils.jar;
A = LOAD ‘error.log’ using com.haqen.pig.MyCustomLoader() AS (in: map[]);
B = FILTER A by in#’_ip’ is not null;
C = GROUP B by in#’_ip’;
D = FOREACH C GENERATE group, COUNT($1) as ip_count;
E = FILTER D BY ip_count > 1;
F = ORDER E BY ip_count DESC;
G = LIMIT F 30;
DUMP G;

Log’u parse etmek için kendi Loader’ımı yazdım. Bu yaştan sonra SQL öğreniyormuş gibi, öğrenmesi sıkıcı ama sonuç alınca keyifli oluyor. Buna alternatif olarak Hive projesi var, onu da kullanıyorum ancak Hive daha ziyade işlenmiş veri üzerinde analiz yapmaya yarıyor diye düşünüyorum. Pig ile ise Map Reduce yazamadan, Java ile uğraşmadan analiz yapabiliyorsunuz. İncelemeye devam edeceğim.

Tags: , , , ,

Leave a Reply