Flume實戰一,Flume配合telnet從指定網路埠採集資料輸出到控制檯
阿新 • • 發佈:2018-12-11
1、使用Flume的關鍵就是寫配置檔案
1)配置Source 2)配置Channel 3)配置Sinks 4)將以上三種元件串聯起來 在cd $FLUME_HOME/conf vim example.conf
#example.conf內容 # a1可以看做是flume服務的名稱,每個flume都由sources、channels和sinks三部分組成 # sources可以看做是資料來源頭、channels是中間轉存的渠道、sinks是資料後面的去向 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # 配置Source a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # 配置Channel a1.channels.c1.type = memory # 配置Sinks a1.sinks.k1.type = logger # Bind the source and sink to the channel #將指定source(r1)和channel(c1)繫結 #再將sink(k1)和channel(c1)繫結 #則:source(r1)和 sink(k1)已經連通 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
2、啟動Flume
1)啟動Flume
$FLUME_HOME/bin/flume-ng agent \
--name a1 \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/example.conf \
-Dflume.root.logger=INFO,console
#$FLUME_HOME/bin/flume-ng agent 啟動flume-ng的agent服務 #–name a1 指定服務名 #–conf $FLUME_HOME/conf Flume配置檔案目錄flume-env.sh #–conf-file $FLUME_HOME/conf/example.conf 我們編寫的配置檔案的目錄 #-Dflume.root.logger=INFO,console 在控制檯輸出日誌
2)使用telnet進行測試
#啟動telnet後在控制檯輸入內容即可
> telnet localhost 44444
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Hello world!
此時就可以在flume-ng agent的控制檯看到如下輸出
12/06/19 15:32:19 INFO source.NetcatSource: Source starting 12/06/19 15:32:19 INFO source.NetcatSource: Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444] 12/06/19 15:32:34 INFO sink.LoggerSink: Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D Hello world!. }
#說明 Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D Hello world!. } Event是Flume傳輸資料的基本單元 Event = 可選的header + byte array