Flume NG安裝部署及數據採集測試

轉載請註明出處:http://www.cnblogs.com/xiaodf/html

Flume做爲日誌收集工具,監控一個文件目錄或者一個文件,當有新數據加入時,採集新數據發送給消息隊列等。java

1 安裝部署Flume

若要採集數據節點的本地數據,每一個節點都須要安裝一個Flume工具,用來作數據採集。linux

1.1 下載並安裝

到官網去下載最新版本的Flumeapache

下載地址爲:http://flume.apache.org/,目前最新版本爲1.6.0,須要1.7及以上版本的JDK。bash

一、解壓oracle

tar -xzvf apache-flume-1.6.0-bin.tar.gz  -C /usr/local/工具

二、安裝JDK1.7測試

   若是節點上JDK版本低於1.7,須要安裝1.7或以上版本的JDKdebug

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安裝部署完畢。

相關文章
相關標籤/搜索