flume安裝及配置

Flume安裝

 

介紹

Flume本身的安裝比較簡單(flume的介紹請參考http://blog.csdn.net/rzhzhz/article/details/7448633),安裝前先說明幾個概念,先看flume的架構

1.    Flume分三種角色

       Mater:  master負責配置及通信管理,是集羣的控制器。

       Collector: collector用於對數據進行聚合,往往會產生一個更大的流,然後加載到storage中。

       Agent: Agent用於採集數據,agent是flume中產生數據流的地方,同時,agent會將產生的數據流傳輸到collector

2.    Collector和Agent的配置數據必須指定Source(可以理解爲數據入口)和Sink(可以理解爲數據出口)

常用的source如:

text(“filename”):將文件filename作爲數據源,按行發送

tail(“filename”):探測filename新產生的數據,按行發送出去

fsyslogTcp(5140):監聽TCP的5140端口,並且接收到的數據發送出去

常用的sink如:

console[("format")] :直接將將數據顯示在桌面上

text(“txtfile”):將數據寫到文件txtfile中

dfs(“dfsfile”):將數據寫到HDFS上的dfsfile文件中

syslogTcp(“host”,port):將數據通過TCP傳遞給host節點

具體介紹可以參考

http://blog.csdn.net/rzhzhz/article/details/7457956

http://blog.csdn.net/rzhzhz/article/details/7449662

 

 

安裝

1.    下載解壓安裝

a)    Flume的下載地址http://archive.cloudera.com/cdh/3/

b)    這裏所說的安裝包括jdk,flume本身及zookeeper的安裝,這裏就不再贅述jdk的安裝過程。Zookeeper集羣安裝請參考http://blog.csdn.net/rzhzhz/article/details/7448894

c)     把下載好的flume包解壓到相應位置(flume集羣每臺機器都需安裝),以下以$FLUME_HOME代替安裝路徑,至於以哪個用戶安裝按本身實際情況而定。

d)    我們暫且先配置一個master,一個collector,一個agent,主機名對應如下

Mater: master

Collector : collector

Agent : agent

2.    配置相關路徑

a)    這裏要配置相關路徑無非也就是因爲flume在啓動的時候如果依賴到相關軟件(如java,hadoop,zookeeper)時會去其根目錄下加載jar包和去conf目錄下加載配置文件

b)    我習慣在/etc/profile下配置export,當然你也可以去$FLUME_HOME/bin目錄下flume-env.sh配置(由flume-env.sh.template改名而成)

配置大致如下(內容僅供參考,加載過程大家可參考$FLUME_HOME/bin/flume腳本內容)

 

#Java

export  JAVA_HOME=/usr/java/jdk1.6.0_25

export  CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export  PATH=$PATH:$JAVA_HOME/bin

 

 

#hadoop

export  HADOOP_HOME=/usr/local/hadoop

export  PATH=$PATH:$HADOOP_HOME/bin

 

 

#zookeeper

export  ZOOKEEPER_HOME=/usr/local/zookeeper

export  PATH=$PATH:$ZOOKEEPER_HOME/bin

 

#flume

export  FLUME_HOME=/usr/local/flume

export  FLUME_CONF_DIR=$FLUME_HOME/conf

export  PATH=$PATH:$FLUME_HOME/bin

 

3.    修改配置文件

a)    $FLUME_HOME/conf目錄下本身有flume-conf.xml和flume-site.xml.template兩個文件,flume-conf.xml是默認的配置文件,雖說也可以修改,但不建議修改,用戶配置應該在flume-site.xml(由flume-site.xml.template改名而成)文件中(即相當於覆蓋flume-conf.xml文件中的原有配置)。flume-site.xml文件應該是針對節點在集羣中的不同角色而做不同的修改(詳細的配置參數可以參考flume-conf.xml,針對不同角色做了分門別類,一目瞭然),這裏就不具體描述了,可參考http://blog.csdn.net/rzhzhz/article/details/7457956

b)    Collector和Agent的用戶配置文件中flume-site.xml必須指定master的地址flume.master.servers,如下:

 

<property>

   <name>flume.master.servers</name>

 <value>master</value>

</property>

 

4.    啓動zookeeper集羣

a)    這裏zookeeper集羣會在master的配置文件裏配置。

 

<property>

    <name>flume.master.zk.use.external</name>

   <value>true</value>

</property>

  <property>

   <name>flume.master.zk.servers</name>

   <value>master:2181,collector:2181,agent:2181</value>

   </property>

flume.master.zk.use.external   是否使用外部zookeeper集羣

flume.master.zk.servers zookeeper集羣地址

b)    如果不配置則使用flume內部提供的zookeeper。flume使用使用zookeeper進行管理和負載均衡.

c)     關於zookeeper保存的master的配置數據是可以配置(flume.master.store)的,可以選擇存在zookeeper中(zookeeper),也可以選擇存儲在內存中(memory)

5.    啓動master,collector,Agent

a)    啓動master:  flume master

b)    啓動node(collector):  flume node_nowatch

c)     啓動node(agent):  flume node_nowatch

後兩者的啓動方式是一樣的,只是在配置參數中有所差異

啓動node的時候可以選擇指定node的名字的參數  -n ,默認爲主機名

如(flume node_nowatch –n node1)

6.    查看

a)    Web查看

Master :

http://master:35871/flumemaster.jsp

可以在master頁面查看和配置node參數

node :

http://collector:35862/flumeagent.jsp

 

http://agent:35862/flumeagent.jsp

單機部署的時候,如果啓動了多個node,則端口以此增加(如35863,35864)

b)    Shell連接(簡略介紹下,更詳細的命令請參考help)

flume shell

collect master

7.    在master修改節點配置

a)    這裏我們其實可以這樣先易後難,不要一開始就弄複雜的配置,這樣很難定位錯誤,還有flume本身的錯誤基本就是在控制檯輸出,這與我們的調試思路有點違背,我們一般的查錯首先都會想到日誌文件,但它的日誌文件實在是沒什麼東西

b)    配置界面大致如下

當然你也可以在shell端配置,此處就不多做介紹。

Web界面配置步驟如下

首先選擇configure node選擇要選擇的node,或者指定不存在於list中的節點(or specify another node)

配置source

配置sink

提交

提交之後可以在master的界面查看是否成功,大致如下圖

c)     Collector配置                                  

SOURCE: collectorSource(35853)

監聽35853端口,接受agent發送的消息                   

SINK: collectorSink("file:///tmp/flume/collected","sink")

將數據加載到文件中

d)    Agent配置

SOURCE: console   

從控制檯接受輸入                                    

SINK: agentE2ESink( "collector",35853 )

指定collector的名字及端口

 

下面簡單介紹一下調試流程

首先我們可以這麼配置 先配置最簡單的source ,console(控制檯輸入)

最簡單的sink,collectorSink("file:///tmp/flume/collected", "file")

然後看file:///tmp/flume/collected文件目錄下是否有控制檯輸入的內容

調試成功後說明agent與collector是相通的。

再把source換成text或者其他再做調試

   最後把sink換成hdfs或者hbase什麼的

8.    配置生效(自動),查看結果

 

 

發佈了51 篇原創文章 · 獲贊 11 · 訪問量 87萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章