Merhaba,
Önceki
FLUME-1, FLUME-2 ve FLUME3A-3b blog yazımız ile flume’ a giriş yapmış, örnek
gerçekleştirmiş ve planımızı sunmuştum.
Bu blog yazımda “Flume – 3C” kısmına devam
etmek istiyorum.
Adresinden 4 adet guid numarasına benzer bilgileri almayı
görmüştük.
Bunlar: Consumer key: * Consumer secret: * Access token: * Access token secret: *
Bu adresten istediğiniz kadar
application oluşturup istediğiniz kadar token alabilirsiniz.
Şimdi
bu token’ ları kullanarak nihai amacımız olan twitter okyanusundan kendi
belirlediğimiz keyword – filter ile dinleme işine bakalım.
Yine adım adım nasıl işlemler
yaptığımızı aşağıda anlatmaya çalıştım.
Twitter
Dinlemek için Gerekli Jar Dosyası
Download Edilir:
flume-sources-1.0-SNAPSHOT.jar
jar
dosyasını internetten bulup download edilir.
Bulacağınız bu jar dosyası sorunlu
olabilir.
Bunun için aşağıdaki link bakmanızı
tavsiye ederim.
cd cdh-twitter-example
cd flume-sources
mvn package
Burada son src dosyası download
edilir ve mvn package ile tekrar deploy edilip …/cdh-twitter-example/flume-sources/target klasöründe bulunan
flume-sources-1.0-SNAPSHOT.jar
dosyası /usr/lib/flume-ng/lib klasörüne atılmalıdır.
Peki bu jar dosyası nedir?
Bu jar dosyası Twitter4j
kütüphanesini kullanan flume ile entegre edebileceğiniz bir jar dosyasıdır.
Twitter
Verilerinin Atılacağı Dizinler ve Haklar yapılır:
[cloudera@quickstart target]$ hadoop dfs -mkdir
/user/twitterdinle
[cloudera@quickstart target]$ hadoop dfs -chmod 777
/user/twitterdinle
flume.conf
Dosyası Düzenlenir:
Flume-1 ve Flume-2 yazılarımı okuyanlar
hatırlayacaklardır. Flume.conf dosyası nedir? Nasıl düzenlenir bloglarımda
bahsetmiştim.
Benim sistemde aşağıdaki klasörleri kullanmıştım.
flume.conf dosyası düzenlenir yada yeniden create
edilir.
/home/cloudera/Desktop/islemler/flume.conf
Bu dosya düzenlenir.
Twitter’
dan Dinlemek İstediğimiz Kelime Seçilir:
Ben ‘murat’ kelimesini seçtim mesela.
Bunu aşağıdaki satır ile belirtiyoruz.
TwitterAgent.sources.Twitter.keywords
= murat
Twitter sayfasından aldığınız token bilgileri ilgili
satırlara girilmelidir.
Bu token bilgilerini kimse ile paylaşmayınız.
Sonuçta sizin kullanıcınız ile alınan token ile
twitter dinleme işi yapılabilir.
TwitterAgent.sources.Twitter.consumerKey=xxxxxxxxxxxx
TwitterAgent.sources.Twitter.consumerSecret=xxxxxxxxxxxxx
TwitterAgent.sources.Twitter.accessToken=xxxxxxxxxx
TwitterAgent.sources.Twitter.accessTokenSecret=xxxxxxxxxxxx
Dinlenen twitter bilgisi hdfs sisteminde nereye
yazılacak?
TwitterAgent.sinks.HDFS.hdfs.path
= hdfs://localhost:8020/user/twitterdinle
flume.conf
dosyasının tamamı aşağıdadır.
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
TwitterAgent.sources.Twitter.type =
com.cloudera.flume.source.TwitterSource
TwitterAgent.sources.Twitter.channels =
MemChannel
TwitterAgent.sources.Twitter.consumerKey=xxxxxxxxxxxx
TwitterAgent.sources.Twitter.consumerSecret=xxxxxxxxxxxxx
TwitterAgent.sources.Twitter.accessToken=xxxxxxxxxx
TwitterAgent.sources.Twitter.accessTokenSecret=xxxxxxxxxxxx
TwitterAgent.sources.Twitter.keywords = murat
TwitterAgent.sinks.HDFS.channel =
MemChannel
TwitterAgent.sinks.HDFS.type = hdfs
TwitterAgent.sinks.HDFS.hdfs.path =
hdfs://localhost:8020/user/twitterdinle
TwitterAgent.sinks.HDFS.hdfs.fileType =
DataStream
TwitterAgent.sinks.HDFS.hdfs.writeFormat
= Text
TwitterAgent.sinks.HDFS.hdfs.batchSize =
1000
TwitterAgent.sinks.HDFS.hdfs.rollSize =
0
TwitterAgent.sinks.HDFS.hdfs.rollCount =
10000
TwitterAgent.channels.MemChannel.type =
memory
TwitterAgent.channels.MemChannel.capacity
= 10000
TwitterAgent.channels.MemChannel.transactionCapacity
= 100
Tanımlamaları aslında bitirdik.
Bundan sonra flume agent’ ı
çalıştırmak işi kalıyor.
Çalıştırma işinde bir hata
almazsanız hdfs sisteminde hdfs://localhost:8020/user/twitterdinle
klasörüne
bakarak twitlerin akmaya başladığını görmelisiniz.
Flume
Agent Çalıştırılması ve Artık Twitter Dinlemeye Başlıyoruz:
Aşağıdaki satırı aynen terminal üzerinden
çalıştırınız.
Burada TwitterAgent ifadesini flume.conf dosyasından geldiğini
tekrar hatırlatırım. Bir alias gibidir. İsmini istediğiniz gibi verebilirsiniz.
[cloudera@quickstart islemler]$ flume-ng agent
--conf-file /home/cloudera/Desktop/islemler/flume.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
Eğer bir sorun olmazsa aşağıdaki
ekran görüntüsünü almanız gerekiyor.
Yani “Establishing connection" ifadesini
görmemiz lazım.
Twitter account’nuz ile twit
girebilirsiniz ve hdfs sistemine bu twitlerin hatta sadece sizin değil tüm
twitter okyanusunda yer alan içinde “murat” geçen tüm twittleri toplamaya
başladınız.
Hue filebrowser dan baktığınızda twitler düşmeye
başladı mı?
Dosya tıklanarak json datası ve içinde
"murat" geçen twitleri görebilirsiniz.
Twitter bilgisini nasıl kullanmak
istediğinize göre değişerek: Bundan sonrası bu json formatındaki dosyadan
sorgulamalar vs. yapabilirsiniz.
Bir web uygulaması yaparak hdfs
sistemine düşen ve dinlediğiniz twitleri gösterir bir uygulama yazabilirsiniz.
Gelen twittleri kategorize ederek
acil eylem yapmanız gereken twittleri belirleyebilirsiniz. Hatta buradan near
real time bir uygulama yada cep – complex event processing vs. kullanarak güzel
uygulamalar gerçekleştirebilirsiniz.
Hive ile twitter json datası
üzerinde sorgu çekebilirsiniz.
Bugünkü blog yazımız bu kadar.
Bir sonraki blog yazımda görüşmek
dileğiyle.
Lütfen, yorumlarınızı bekliyorum.
mmetin



Hiç yorum yok:
Yorum Gönder