一、需求
B服务器 监听收集A服务器内容
二、配置
2.1 先创建一个 foo.conf
#那么我们也给这个三个组件分别取名字
foo.sources = s1
foo.channels = c1
foo.sinks = k1
#定义具体的source内容
##这里是执行命令以及下面对应的具体命令
##这个命令执行后的数据返回给这个source
foo.sources.s1.type = exec
foo.sources.s1.command = tail -f /data1/4.txt
foo.sources.s1.shell = /bin/sh -c
#
##定义具体的channel信息
##我们source定义好了,就要来定义我们的channel
foo.channels.c1.type = memory
foo.channels.c1.capacity = 100
foo.channels.c1.transactionCapacity = 100
#
##定义具体的sink信息
#
foo.sinks.k1.type = avro
foo.sinks.k1.hostname = localhost
foo.sinks.k1.port = 44444
#
##最后来组装我们之前定义的channel和sink
foo.sources.s1.channels = c1
foo.sinks.k1.channel = c1
2.2 再创建一个 bar.conf
bar.sources = s1
bar.channels = c1
bar.sinks = k1
#定义具体的source内容
##这里是执行命令以及下面对应的具体命令
##这个命令执行后的数据返回给这个source
bar.sources.s1.type = avro
bar.sources.s1.bind = localhost
bar.sources.s1.port = 44444
#
##定义具体的channel信息
##我们source定义好了,就要来定义我们的channel
bar.channels.c1.type = memory
bar.channels.c1.capacity = 100
bar.channels.c1.transactionCapacity = 100
#
##定义具体的sink信息
#
bar.sinks.k1.type = logger
#
##最后来组装我们之前定义的channel和sink
bar.sources.s1.channels = c1
bar.sinks.k1.channel = c1
三、测试
3.1 先启动 后一个agent ,再在另外一个 窗口启动 前一个 foo agent 。
flume-ng agent -n bar -f ../conf/bar.conf
flume-ng agent -n foo -f ../conf/bar.conf
然后在对应的文件里面写入数据,如下图: