目录
[一 解压安装包](#一 解压安装包)
[二 配置部署](#二 配置部署)
一 解压安装包
这里提供了网盘资源
链接: https://pan.baidu.com/s/1Z0aItCHMybYpXkt3_RUaVw?pwd=s6pg 提取码: s6pg
这里安装包是放到/opt/install 文件夹下
解压到/opt/soft 目录
tar -zxf /opt/install/apache-flume-1.9.0-bin.tar.gz -C /opt/soft
给解压的文件夹改个名
cd /opt/soft
mv apache-flume-1.9.0-bin/ flume190
二 配置部署
(1)修改配置
将lib文件夹下的guava-11.0.2.jar删除以兼容Hadoop 3.1.3
cd ../lib
rm -rf ./guava-11.0.2.jar
cp /opt/soft/hadoop313/share/hadoop/common/lib/guava-27.0-jre.jar ./
进入/opt/soft/flume190/conf/目录
cd flume190/conf/
flume-env.sh.template拷贝成 flume-env.sh
cp flume-env.sh.template ./flume-env.sh
修改该文件
vim flume-env.sh
22行jdk路径修改成自己的
22 export JAVA_HOME=/opt/soft/jdk180
25 行 jdk 内存改大些
25 export JAVA_OPTS="-Xms2000m -Xmx2000m -Dcom.sun.management.jmxremote"
(2)下载工具
yum install -y net-tools
安装 netcat
yum install -y nc
安装 telnet 服务
yum install -y telnet-server
安装 telnet 客户端
yum install -y telnet.*
测试 telnet
开两个窗口分别作为客户端和服务器端
客户端
telnet localhost 7777
服务器端
nc -lk 7777
在客户端拨号输入语句后,服务器端能接受到
服务器端挂掉后,客户端也会跟着挂掉
查看 7777端口是否被占用
netstat -lnp | grep 7777
(3)创建配置文件
创建 myconf2 文件夹
mkdir myconf2
创建 conf 文件
vim ./netcat-logger.conf
a1.sources=r1
a1.channels=c1
a1.sinks=k1
a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=7777
a1.channels.c1.type=memory
a1.sinks.k1.type=logger
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
(4)启动监听测试
此时执行的路径在/opt/soft/flume190,因为这条命令有的参数路径是相对路径,所以必须在当前路径下执行
./bin/flume-ng agent --name a1 --conf ./conf/ --conf-file ./conf/myconf2/netcat-logger.conf -Dflume.root.logger=INFO,console
此时再次在客户端拨号输入内容,将会在控制台看到
第一种写法:
[atguigu@hadoop102 flume]$ bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
第二种写法:
[atguigu@hadoop102 flume]$ bin/flume-ng agent -c conf/ -n a1 -f job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
参数说明:
--conf/-c:表示配置文件存储在conf/目录
--name/-n:表示给agent起名为a1
--conf-file/-f:flume本次启动读取的配置文件是在job文件夹下flume-telnet.conf文件。
-Dflume.root.logger=INFO,console :-D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error。
(5)flume监控文件
在 myconf 文件夹中新编辑一个配置文件
vim ./flumelogger.econf
a2.sources=r1
a2.channels=c1
a2.sinks=k1
a2.sources.r1.type=exec
a2.sources.r1.command=tail -f /opt/kb23/flumefile.log
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100
a2.sinks.k1.type = logger
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1
创建一个被监控的文件
我这里的是 /opt/kb23/flumefile.log
这里命令的意思是只要有东西被加入这个文件,就会被 flume 监控到
运行
./bin/flume-ng agent --name a2 --conf ./conf/ --conf-file ./conf/myconf2/filelogger.conf -Dflume.root.logger=INFO,console
写东西进入flumefile.log测试(另一个窗口)
echo "hello dio" >> /opt/kb23/flumefile.log
如果被监测到就是成功了