1. 程式人生 > >Flume實戰一,Flume配合telnet從指定網路埠採集資料輸出到控制檯

Flume實戰一,Flume配合telnet從指定網路埠採集資料輸出到控制檯

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