如图:需要开两台机器 这里用的是master、slave1,需先开Agent2机器等待,再开Agent1
Agent1机器:master
Agent2机器:slave1
文件数据:/opt/log.00
1.启动master、slave1的flume
flume-ng version
2.在master、slave节点下配置文件
master节点下:[root@master]# vim /opt/exec-memory-avro.conf
a1.sources=r1
a1.channels=c1
a1.sinks=s1
a1.sources.r1.type=exec
a1.sources.r1.command=tail -f /opt/log.00
a1.sources.r1.channels=c1
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=slave1
a1.sinks.s1.port=44141
a1.sinks.s1.channel=c1
slave1节点下:[root@slave]# vim /opt/avro-memory-logger.conf
a2.sources=r1
a2.channels=c1
a2.sinks=s1
a2.sources.r1.type=avro
a2.sources.r1.bind=slave1
a2.sources.r1.port=44141
a2.sources.r1.channels=c1
a2.channels.c1.type=memory
a2.channels.c1.capacity=1000
a2.channels.c1.transactionCapacity=100
a2.sinks.s1.type=logger
a2.sinks.s1.channel=c1
3.在master节点编写 /opt/exec-memory-avro.conf 中的 /opt/log.00文件
[root@master]# vim /opt/log.00 (内容随意)
4.先开启slave1机器等待—再开master机器
[root@slave1 conf]# flume-ng agent -c /usr/local/flume/conf/ -f /opt/avro-memory-logger.conf -n a2 -Dflume.root.logger=INFO,console
[root@master conf]# flume-ng agent -c /usr/local/flume/conf/ -f /opt/exec-memory-avro.conf -n a1 -Dflume.root.logger=INFO,console
此时发现slave1机器刷新,读取出 写入在master节点中的/opt/log.00文件内容
继续更新/opt/log.00中的内容,发现slave1机器刷新
[root@master ~]# echo 'hell0'>>/opt/log.00
刚写入的 'hello' 内容被读取