Flume kafkaChannel

flume的一个agent包括source、channel、sink,但是有时候其实可以不需要source或者是sink,比如在使用flume时,把flume监控的日志发送到kafka中,可以不用使用sink,把channel定义为kafkachannel,kafkachannel作为生产者,直接把数据生产到kafka中,或者使用flume监控kafka中的数据,把数据发送到其他地方,可以不使用source,使用kafkachannel作为消费者,从kafka中拉数据,把数据写到指定的sink上
 

使用 source和channel,把数据发送到kafka中,这种方法时nosink

 

 

#定义agent名, source、channel的名称
a0.sources = r1
a0.channels = c1

#具体定义source
a0.sources.r1.type = exec
a0.sources.r1.command = tail -F /data/logs.txt


a0.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a0.channels.c1.brokerList = bigdata01:9092,bigdata02:9092,bigdata03:9092
a0.channels.c1.zookeeperConnect=192.168.136.150:2181
a0.channels.c1.topic = usertest
#false表示是以纯文本的形式写进入的,true是以event的形式写进入的,以event写进入时,会出现乱码, 默认是true
a0.channels.c1.parseAsFlumeEvent = false
a0.sources.r1.channels = c1

 

测试:

执行命令

/home/bigdata/install/apache-flume-1.5.0-cdh5.3.6-bin/bin/flume-ng agent --conf   /home/bigdata/install/apache-flume-1.5.0-cdh5.3.6-bin/conf/ --name a0  --conf-file /home/bigdata/install/apache-flume-1.5.0-cdh5.3.6-bin/job/kafkacannel.conf  -Dflume.root.logger==INFO,console

开启一个消费者:

kafka-console-consumer.sh --bootstrap-server bigdata01:9092,bigdata02:9092,bigdata03:9092 --topic usertest --from-beginning

手动向文件中生产数据

echo "aaaaaaaaa">>/data/logs.txt

观察到消费者消费者到了数据
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值