1. 程式人生 > >【三】Flume的使用:從指定的網路埠採集資料輸出到控制檯

【三】Flume的使用:從指定的網路埠採集資料輸出到控制檯

官網介紹

官網配置介紹

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