DevVeri.com

Boğulacaksan büyük veride boğul!

Eclipse Pig Entegrasyonu

Apache Pig projesi ile ilgili detaylı bir yazı yazmayı planlıyoruz fakat bundan önce Pig script geliştirmeyi kolaylaştıracak bir paylaşım yapmak istedim. Bu yazıda Pig scriptlerini Eclipse üzerinden nasıl çalıştırdığımı paylaşacağım, umarım işinize yarar.Eclipse üzerinden Pig geliştirmek için kullanmak için öncelikle PigEditor eklentisini kurdum. Bu eklenti kodları renklendirip yazım hatalarını gösteriyor. Bunun dışında pek bir özelliği yok.

Pig’i kurduktan sonra yazacağım script’lerin MapReduce modunda çalışması için Hadoop ayar dosyalarını makinama kopyaladım. Mevcut cluster’ımızda sistem hadoop kullanıcısı ile çalıştığı için lokalimde yazdığım script’leri uzaktan çalıştırabilmek adına kendi bilgisayarımda (tabiki linux) hadoop kullanıcısını yarattım. Script’leri bu kullanıcı ile Eclipse içerisinden çalıştırmak istediğimde sorun olacağı için bu kullanıcının şifresini kaldırdım. Bu arada script’ler farklı kullanıcı tarafından çalıştırılacağı için script’lerin bulunduğu dizinin hem sizin kullanıcınız hem de hadoop kullanıcısı tarafından erişilebilir olmasına dikkat etmek gerekiyor.

Yarattığım pigrunner.sh dosyası içerisinde Pig ile ilgili sistem değişkenlerini girip komut satırından çalıştıracağı Pig script’ini ekledim, şöyle görünüyor:

Daha sonra Eclipse içerisinden Run -> External Tools -> External Tool Configuration menüsünden Program bölümünden aşağıdaki gibi yeni bir konfigürasyon ekledim:

Location değeri için Browse Workspace diyerek hazırladığımız pigrunner.sh’ı seçtim. Working Directory değeri için (log dosyalarını buraya yazıyor) /tmp/ girdim ve son olarak o an Eclipse’de açık olan dosyanın yolunu alan değişken olan ${selected_resource_loc} değişkenini seçtim.

Bu ayarları yaptıktan sonra artık Eclipse içerisinden istediğim Pig scriptini cluster üzerinden çalıştırabilir hale geldim. Umarım sizin de işinize yarar. Daha kullanışlı ya da daha kolay bir yöntem bulursam onu da paylaşacağım.

, ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.