flume集群搭建

jopen 8年前發布 | 21K 次閱讀

flume其實沒有集群概念,每個flume都是一個獨立的個體,每個flume agent收集數據匯總到flume collector,由collector寫入flume storage。

我現在有兩臺虛擬機,一臺是叫master,當flume agent;一臺叫slave1,當flume collector,實現agent連接collector向collector發送日志,最終collector將日志寫入到hdfs。

兩臺虛擬機事先配置好了jdk和hadoop。

 

1、解壓安裝

   tar -zxvf apache-flume-1.6.0-bin.tar.gz

2、配置各機器環境變量 /etc/profile

 

3、配置flume JAVA_HOME

cd /usr/local/apache-flume-1.6.0-bin/conf,把flume-env.sh.template重命名為flume-env.sh,往里添加 export JAVA_HOME=/usr/lib/jdk1.7.0_75

4、復制flume到其他節點(只是各自的啟動文件不同)

 

cd /usr/local

       scp -r apache-flume-1.6.0-bin slave1:~然后再移動到響應目錄下

5、配置agent啟動文件

在master節點上,在flume的conf目錄,將flume-conf.properties.template重命名為flume-test.conf(其實什么名字都可以,只要你啟動的時候調用對就可以了),然后配置source,channel,sink。

我這里agent source是spooldir ,channel是memory,sink是avro,三層類別詳細說明見flume官網

在slave1節點,collector三層,source是avro,channel是memory,sink是hdfs

6、啟動flume

先啟動slave1節點,再啟動master節點

flume-ng agent -n agent -c /usr/local/apache-flume-1.6.0-bin/conf  -f /usr/local/apache-flume-1.6.0-bin/conf/flume-test.conf -Dflume.root.logger=DEBUG,console

flume-ng agent -n agent -c /usr/local/apache-flume-1.6.0-bin/conf  -f /usr/local/apache-flume-1.6.0-bin/conf/flume-test.conf -Dflume.root.logger=DEBUG,console

啟動命令一樣,-n是名字,-c是配置文件的目錄,-f是配置文件,-D是日志級別。

然后在master的/home/zhanghuan/Documents/flume-test目錄下添加文件,最后在hdfs里查看該文件,如果存在該文件,則表示flume搭建成功,否則失敗。

注意,搭建過程中可能出現如下錯誤:

Could not configure sink  sink1 due to: No channel configured for sink: sink1
org.apache.flume.conf.ConfigurationException: No channel configured for sink: sink1

則仔細查看配置文件,一個source可以對應多個channel,所以是channels,agent.sources.source1.channels = channel1,

但是一個sink對應一個channel,所以是channel,agent.sinks.sink1.channel = channel1,請注意。

 

 

 

 

 

來自: http://my.oschina.net/u/2000675/blog/604267

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!