1.上傳
2解壓
tar -xzvf apache-flume-1.8.0-bin.tar.gz
3.修改flume-env.sh
進入 flume 的目錄,cp flume-env.sh.template flume-env.sh , 修改flume-env.sh,
在裏面配置 export JAVA_HOME=/usr/local/jdk1.8.0_191
4.配置環境變量
export FLUME_HOME=/home/hadoop/apps/apache-flume-1.8.0-bin
export PATH=$PATH:$FLUME_HOME/bin
然後source /etc/profile生效
5.在軟件根目錄中創建agentconf文件夾
mkdir agentconf
6.創建一個數據採集方案
在$FLUME_HOME/agentconf 目錄下創建一個數據採集方案,該方案就是從一個網絡端口
收集數據,也就是創一個任意命名的配置文件如下:netcat-logger.properties
文件內容如下:
# 定義這個 agent 中各個組件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置 source 組件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 描述和配置 sink 組件:k1
a1.sinks.k1.type = logger
# 描述和配置 channel 組件,此處使用是內存緩存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置 source channel sink 之間的連接關係
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
7.啓動 agent 去採集數據
在$FLUME_HOME 下執行如下命令:
bin/flume-ng agent \
-n a1 \
-c conf \
-f agentconf/netcat-logger.properties \
-Dflume.root.logger=INFO,console
-c conf 指定 flume 自身的配置文件所在目錄
-f conf/netcat-logger.perproties 指定我們所描述的採集方案
-n a1 指定我們這個 agent 的名字
報錯
2018-12-04 09:37:55,178 (main) [ERROR - org.apache.flume.node.Application.main(Application.java:348)] A fatal error occurred while running. Exception follows.
org.apache.commons.cli.ParseException:
The specified configuration file does not exist: /home/hadoop/apps/apache-flume-1.8.0-bin/agentconf/netcat-logger.properties
at org.apache.flume.node.Application.main(Application.java:316)
因爲創建netcat-logger.properties的時候後綴打錯了,然後重命名修改文件後綴之後文件類型依然是文件而不是properties文件,重新創建netcat-logger.properties即可啓動成功
啓動成功
8.測試
打開一個新shell的窗口
先要往 agent 的 source 所監聽的端口上發送數據,讓 agent 有數據可採
例如在本機節點,使用 telnet localhost 44444 命令就可以
如果這個命令的執行過程中發現拋出異常說:command not found
那麼請使用:sudo yum -y install telnet 這個命令進行 telnet 的安裝
然後輸入兩行信息
在啓動Flume的窗口查看
成功接收到消息