项目场景:
1、安装netcat工具
命令yum install -y nc
2、本次监听的端口是22222,33333,44444,检查端口是否被占用
命令netstat -tunlp | grep 22222
,netstat -tunlp | grep 33333
,netstat -tunlp | grep 44444
操作步骤:
1、创建配置文件,agent2.conf
,分别在node1,node2,node3中
内容如下:
#node1
a1.sources=r1
a1.channels=c1
a1.sinks=k1 k2
a1.sources.r1.type=netcat
a1.sources.r1.bind=node1
a1.sources.r1.port=22222
#一个channel对应多个sink时要设置一个sinkgroups
a1.sinkgroups = g1
#该sink组有哪些sink的实例
a1.sinkgroups.g1.sinks = k1 k2
#配置sinkProcessor的类型1、failover故障转移2、load_balance负载均衡
a1.sinkgroups.g1.processor.type = failover
#配置sink的优先级数值越大优先级越高
a1.sinkgroups.g1.processor.priority.k1 = 5
a1.sinkgroups.g1.processor.priority.k2 = 10
a1.sinkgroups.g1.processor.maxpenalty = 10000
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.sinks.k1.type=avro
a1.sinks.k1.hostname=node2
a1.sinks.k1.port=33333
a1.sinks.k2.type=avro
a1.sinks.k2.hostname=node3
a1.sinks.k2.port=44444
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
a1.sinks.k2.channel=c1
#node2
a1.sources=r1
a1.channels=c1
a1.sinks=k1
a1.sources.r1.type=avro
a1.sources.r1.bind=node2
a1.sources.r1.port=33333
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.sinks.k1.type=logger
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
#node3
a1.sources=r1
a1.channels=c1
a1.sinks=k1
a1.sources.r1.type=avro
a1.sources.r1.bind=node3
a1.sources.r1.port=44444
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.sinks.k1.type=logger
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
2、执行命令
进入到flume目录下,执行命令。
在node1中,执行命令flume-ng agent -n a1 -c conf/ -f datas2/agent2.conf -Dflume.root.logger=INFO,console
,
在node2中,执行命令flume-ng agent -n a1 -c conf/ -f datas2/agent2.conf -Dflume.root.logger=INFO,console
,
在node3中,执行命令flume-ng agent -n a1 -c conf/ -f datas2/agent2.conf -Dflume.root.logger=INFO,console
。
3、查看输出内容
因为在上面设置了node3的优先级要高于node2,所以输出内容在node3中