【三】Flume的使用:從指定的網路埠採集資料輸出到控制檯
阿新 • • 發佈:2019-02-11
官網配置介紹
agent選擇:netcat source + memory channel + logger sink
建立agent配置檔案
目錄和名字可以隨意
cd /app/flume/flume/conf
vi test-netcat.conf
# example.conf: A single-node Flume configuration # Name the components on this agent # a1是agent的名稱 # r1是source的名稱 # k1是sink的名稱 # c1是channel的名稱 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source # 配置source # tpye有很多種,在官網看。netcat source會監聽一個埠,把每一行的資料轉換成一個event(flume中資料傳輸的一個單元) # a1.sources.r1.type = netcat a1.sources.r1.bind = node1 a1.sources.r1.port = 44444 # Describe the sink #logger型別的sinks是日誌的event資訊通過Info級別輸出,資料由控制檯輸出 a1.sinks.k1.type = logger # Use a channel which buffers events in memory #event會被存在記憶體佇列裡面,依據配置的大小 。 a1.channels.c1.type = memory # Bind the source and sink to the channel #指定sources.r1對應channel.c1 #指定sinks.k1對應channel.c1 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
啟動agent
bin/flume-ng agent --name a1 -c conf -f conf/test-netcat.conf -Dflume.root.logger=INFO,console
其中
bin/flume-ng agent 啟動agent
--name agent的名字
--conf conf 指定flume的conf路徑
-f 指定要啟動的agent的配置檔案
-Dflume.root.logger=INFO,console 把資訊列印到控制檯
根據配置這是監聽node1:44444埠來的資料
我們往這個埠發資料測試一下
用telnet測試
telnet node1 44444
輸入測試資料
hello flume
檢視啟動的agent
Event: { headers:{} body: 68 65 6C 6C 6F 20 66 6C 75 6D 65 0D hello flume. }
event是flume裡面資料傳輸的基本單元
event = (可選)header + byte array
可以理解為一條記錄就是一個event