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


轉載請注明出處: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安裝部署完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM