轉載請注明出處:http://www.cnblogs.com/xiaodf/
Flume作為日志收集工具,監控一個文件目錄或者一個文件,當有新數據加入時,采集新數據發送給消息隊列等。
1 安裝部署Flume
若要采集數據節點的本地數據,每個節點都需要安裝一個Flume工具,用來做數據采集。
1.1 下載並安裝
到官網去下載最新版本的Flume
下載地址為:http://flume.apache.org/,目前最新版本為1.6.0,需要1.7及以上版本的JDK。
1、解壓
tar -xzvf apache-flume-1.6.0-bin.tar.gz -C /usr/local/
2、安裝JDK1.7
如果節點上JDK版本低於1.7,需要安裝1.7或以上版本的JDK
JDK 1.7 下載地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
在Flume目錄下創建一個java目錄,存放JDK
cd /usr/local/apache-flume-1.6.0-bin mkdir java cd java tar -xzvf jdk-7u79-linux-x64.tar.gz
1.2 配置Flume系統參數
修改 flume-env.sh 配置文件,主要是JAVA_HOME變量設置
cd /usr/local/apache-flume-1.6.0-bin/conf cp flume-env.sh.template flume-env.sh
在flume-env.sh里面設置FLUME_CLASSPATH變量和JAVA_HOME變量,
示例:
export JAVA_HOME=/usr/local/apache-flume-1.6.0-bin/java/jdk1.7.0_79 FLUME_CLASSPATH="/usr/local/apache-flume-1.6.0-bin/"
變量具體內容根據實際修改
1.3 添加Flume第三方依賴
此處自定義了一個flume攔截器,沒有的話,可忽略此步。
添加第三方依賴包flume-plugins-1.0-SNAPSHOT.jar,此包實現了一個Flume攔截器,將Flume采集到的數據進行序列化、結構化等預處理,最后每條數據生成一條Event數據返回。
cd /usr/local/apache-flume-1.6.0-bin mkdirplugins.d --創建依賴目錄,目錄名必須為plugins.d cdplugins.d mkdirflume-plugins --項目目錄,目錄名隨意 cdflume-plugins mkdirlib --jar包目錄,目錄名必須為lib
將第三方jar包flume-plugins-1.0-SNAPSHOT.jar放在lib目錄下
1.4 創建Flume agent配置文件
創建flume啟動配置文件,指定source,channel,sink 3個組件內容。每個組件都有好幾種配置選項,具體配置請查看Flume官網。
創建配置文件flume.conf,示例如下:
a1.sources = x1 a1.sinks = y1 a1.channels = z1 # Describe/configure thesource a1.sources.x1.type =exec a1.sources.x1.channels =z1 a1.sources.x1.command =tail -F /home/xdf/exec.txt # Describe the sink a1.sinks.y1.type =logger # Use a channel whichbuffers events in memory a1.channels.z1.type =memory a1.channels.z1.capacity= 1000 a1.channels.z1.transactionCapacity= 100 # Bind the source andsink to the channel a1.sources.x1.channels =z1 a1.sinks.y1.channel = z1
1.5 啟動Flume Agent
進入Flume安裝目錄,開啟agent。
cd /usr/local/apache-flume-1.6.0-bin ./bin/flume-ng agent--conf conf --conf-file flume.conf --name a3 -Dflume.root.logger=INFO,console
注意:-Dflume.root.logger=INFO,console僅為 debug 使用,請勿生產環境生搬硬套,否則大量的日志會返回到終端。-c/--conf 后跟配置目錄,-f/--conf-file 后跟具體的配置文件,-n/--name 指定agent的名稱。
1.6 測試
上面配置的example.conf文件,實現的功能是監控文件/home/xdf/exec.txt,
如果有新數據寫入時,Flume就會采集到新數據並打印在控制台上。
測試用例:向/home/xdf/exec.txt文件中寫入內容“hello flume”。
echo 'hello flume'>> /home/xdf/exec.txt
Flume 終端窗口此時會打印出如下信息,就表示成功了:
2015-06-3016:01:52,910 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO -org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: {headers:{} body: 68 65 6C 6C 6F 20 66 6C 75 6D 65 hello flume }
至此,Flume安裝部署完畢。