本小节将展示flume的级联。所谓级联,是指一个flume的sink作为另一个flume的source,常用于收集其他服务器的日志到日志服务器。
1、前提约束
- 有两台服务器[虚拟机也可以],假设这两台服务器的ip、域名分别为:
192.168.100.141 hadoop1
192.168.100.142 hadoop2
且已经设置免密登录和关闭防火墙,且已安装jdk并配置环境变量 - 已经安装flume服务器
https://www.jianshu.com/p/3e4f7db8080f
假设该flume服务是安装在192.168.100.141服务器的/root路径下,且已关闭
2、操作步骤
执行以下命令,将完成把142中的日志数据同步到141:
(1)在141执行以下命令,拷贝flume安装包到hadoop2
scp -r /root/apache-flume-1.8.0-bin root@hadoop2:/root
(2)修改141中的flume配置文件flume-conf-avro.properties
a2.sources = r1
a2.sinks = k1
a2.channels = c1
a2.sources.r1.type = avro
a2.sources.r1.bind = 192.168.100.141
a2.sources.r1.port = 44444
a2.sources.r1.interceptors = i1
a2.sources.r1.interceptors.i1.type = timestamp
a2.sinks.k1.type = file_roll
a2.sinks.k1.sink.directory = /root/test
a2.sinks.k1.sink.rollInterval = 0
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1
注意,需要在141中创建/root/test文件夹。
(3)在141中启动flume服务,此时141服务器中44444端口将处于监听状态
/root/apache-flume-1.8.0-bin/flume-ng agent -c ../conf -f ../conf/flume-conf-avro.properties -n a2&
(4)修改142中的flume配置文件flume-conf-avro.properties
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = localhost
a1.sources.r1.port = 55555
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.100.141
a1.sinks.k1.port = 44444
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
(5)在142中启动flume服务,此时142服务器中55555端口将处于监听状态
/root/apache-flume-1.8.0-bin/flume-ng agent -c ../conf -f ../conf/flume-conf-avro.properties -n a1
(6)在142中创建/root/info.log,内容如下
ali
xiaoli
zhangli
在142中执行以下命令,将以avro协议方式发送log日志数据到142的55555端口
/root/apache-flume-1.8.0-bin/flume-ng avro-client -H localhost -p 55555 -F /root/info.log
(7)查看141中的/root/test目录,我们将看到同步好的数据。
以上就是flume级联操作。
网友评论