记录kafkachannel遇到的坑

在使用kafkachannel时,启动flume报错
org.apache.flume.conf.ConfigurationException: Broker List must be specified
原因是我使用的flume的版本是1.5.0的,kafka是kafka_2.11-0.11.0.2,
kafka使用的是新版,而flume使用的比较老,在定义broker时,flume新老版本不一致

这个是我原来写的配置,这个是flume1.7以后才是这样写,所以会报上面的错

a0.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a0.channels.c1.kafka.bootstrap.servers = bigdata01:9092,bigdata02:9092,bigdata03:9092
a0.channels.c1.kafka.topic = userif
#a0.channels.c1.parseAsFlumeEvent = false
a0.sources.r1.channels = c1```

解决就是把--bootstrap-servers 换成brokerList,或者换一个高一点的flume版本,为了确保万无一失,把zookeeper.jar 拷贝到flume的lib下

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.kafka.topic = userif
a0.sources.r1.channels = c1
第二个坑:
再启动flume以后,把flume监控到的生产的数据通过kafkachannel作为生产者写入到分区时,去查看分区数,发现并没有生产进去,但是flume并没有报错, 后再通过观察flume产生的日志发现,kafkacannel作为生产者生产的数据生产到了flume-Chanel,但是在kafka的数据所在的文件夹中并没有看到这个topic的存在,然后我就新建这个topic,结果报错了,说是已经存在,很无语。。。。 只能通过下面的命令查看了,确实时存在的

kafka-topics.sh --describe --zookeeper 192.168.163.150:2181,192.168.136.151:2181,192.168.136.152:2181 --topic flume-channel

傻乎乎的在自己定义的topic找了半天数据,结果自己定义的没起作用,于是就上官网看了了,发现flume1.5版本定义topic是使用topic而不是kafka.topic,如果不定义就默认使用flume-channel
在这里插入图片描述

在这里插入图片描述

a0.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a0.channels.c1.kafka.bootstrap.servers =
bigdata01:9092,bigdata02:9092,bigdata03:9092
a0.channels.c1.kafka.topic = userif
#a0.channels.c1.parseAsFlumeEvent = false a0.sources.r1.channels = c1```

解决就是把kafka.topic换成topic

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 = userif a0.sources.r1.channels = c1

猜你喜欢

转载自blog.csdn.net/Lu_Xiao_Yue/article/details/85223206
今日推荐