1. 程式人生 > >如何編譯及執行flume原始碼

如何編譯及執行flume原始碼

一、從原始碼開始編譯

1、github(https://github.com/apache/flume)上fork分支,下載到本地

2、編譯 mvn clean package -DskipTests=true  ,要求JDK7及以上版本,maven3及以上版本

編譯過程中,可能有很多jar下載不了,建議用google搜尋,相應的jar,下載到本地倉庫(本人反覆下載缺失jar,拷貝到maven配置的本地倉庫,花費在2小時左右。)

3、匯入eclipse ,會發現還有編譯錯誤,原因是一些類找不到,這正是avro序列化框架自動生成的原始碼,如果正常編譯,這些程式碼已經在target目錄下生成了。將target下的avro生成的原始碼拷貝到對應目錄,解決編譯問題。

flume compile ok

二、執行Application

1、下載flume二進位制包

http://flume.apache.org/download.html 解壓到任意目錄下,記為your_flume_root

按照使用者指南,啟動flume,telnet獲取資料即可。

2、將${your_flume_root}/conf/log4j.properties檔案拷貝到flume\flume-ng-node\src\main\java原始碼目錄下,並將console加到第一行 

  flume.root.logger=INFO,LOGFILE,console

將${your_flume_root}/conf/example.conf 拷貝到 /flume-ng-node/example.conf

copy files

 3、在eclipse設定Application入口類的debug引數

-n a1 -f example.conf

set debug params

  執行Application類(含main)方法:如下圖:

flume Application啟動

開啟cmd執行telnet localhost 44444 (window預設telnet服務時關閉的,需要手工啟動telnet服務),輸入hello flume

telnet client

telnet

Over !現在可以開始研究flume程式碼如何啟動及運轉了。

參考資料

Flume-NG啟動過程原始碼分析 http://blog.csdn.net/szwangdf/article/details/34097965

Flume 1.6.0 User Guide http://flume.apache.org/FlumeUserGuide.html