天天看點

Flume配置案例——多sink

系統環境

Linux Ubuntu 14.04

jdk-7u75-linux-x64

hadoop-2.6.0-cdh5.4.5

flume-ng-1.5.0-cdh5.4.5

實驗内容

Flume配置案例——多sink

說明:

1、建立Agent 具體如下:

(1)采用syslogtcp類型的source,使用nc指令産生Syslog日志,發送到6868端口。

(2)建立二個Channel,Channel1、Channel,用于暫存Syslog日志。

(3)建立二個Sink,Sink1是将資料傳入到HDFS檔案系統中,Sink2是将資料以logger的形式,發送到console界面上。

實驗步驟

1.首先檢查Hadoop相關程序,建立Flume配置檔案,名為:syslogtcp_mem_threesink.conf 和avro_mem_logger.conf,使用vim編輯這些conf檔案,

cd /apps/flume/conf
cp ./flume-conf.properties.template ./syslogtcp_mem_twosink.conf
           

2.配置agent1:

vim syslogtcp_mem_twosink.conf
           

在該檔案中寫入如下配置:

##定義各個元件  
agent1.sources  = src  
agent1.channels = ch1 ch2
agent1.sinks    = des1 des2

##配置source  
agent1.sources.src.type = syslogtcp  
agent1.sources.src.bind = localhost  
agent1.sources.src.port = 6868  

##配置channel  
agent1.channels.ch1.type = memory  
agent1.channels.ch2.type = memory   

##配置sink
#配置hdfs sink  
agent1.sinks.des1.type = hdfs  
agent1.sinks.des1.hdfs.path = hdfs://localhost:9000/myflume/syslogtcp_mem_twosink/  
agent1.sinks.des1.hdfs.useLocalTimeStamp = true  
#設定flume臨時檔案的字首為 . 或 _ 在hive加載時,會忽略此檔案。  
agent1.sinks.des1.hdfs.inUsePrefix=_  
#設定flume寫入檔案的字首是什麼  
agent1.sinks.des1.hdfs.filePrefix = q7  
agent1.sinks.des1.hdfs.fileType = DataStream  
agent1.sinks.des1.hdfs.writeFormat = Text  
#hdfs建立多久會建立一個檔案,0為不基于時間判斷,機關為秒  
agent1.sinks.des1.hdfs.rollInterval = 20  
#hdfs寫入的檔案達到多大時,建立新檔案 0為不基于空間大小,機關B  
agent1.sinks.des1.hdfs.rollSize = 10  
#hdfs有多少條消息記錄時,建立檔案,0為不基于條數判斷  
agent1.sinks.des1.hdfs.rollCount = 5  
#hdfs空閑多久就建立一個檔案,機關秒  
agent1.sinks.des1.hdfs.idleTimeout = 20  

#配置logger sink  
agent1.sinks.des2.type = logger  

##下面是把上面設定的元件關聯起來(把點用線連起來)  
agent1.sources.src.channels = ch1 ch2
agent1.sinks.des1.channel   = ch1  
agent1.sinks.des2.channel   = ch2  
           

3.啟動Flume,執行收集工作。

cd /apps/flume  

flume-ng agent -c /conf -f /apps/flume/conf/syslogtcp_mem_twosink.conf -n agent1 -D flume.root.logger=DEBUG,console 
           

5.新打開一個視窗,執行nc指令,向6868端口發送消息。

echo "can you help me?" | nc localhost 6868 
           

flume-ng界面輸出:

Flume配置案例——多sink

檢視HDFS上的輸出:

Flume配置案例——多sink

繼續閱讀