即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.报错:org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
1>.由于我默认就开启了自动创建topic,因此我们直接启动生产者:kafka-console-producer.sh --broker-list 10.1.3.116:9092 --topic yinzhengjie-kafka (在一台安装jdk8版本的机器上操作)
2>.紧接着我们启动消费者,观察是否能收到数据:kafka-console-consumer.sh --zookeeper 10.1.1.102:2181 --from-beginning --topic yinzhengjie-kafka(在一台jdk1.7上操作的)
解决办法:
查看Kafka集群是否正常启动,如果没有启动需要将Kafka集群启动起来!登陆CM观看自己的kafka集群发现该集群还未启动呢,导致的Kafka集群不可用
二.[2018-10-12 21:40:12,864] WARN Fetching topic metadata with correlation id 0 for topics [Set(yinzhengjie-kafka)] from broker [BrokerEndPoint(267,kafka119.aggrx,9092)] failed (kafka.client.ClientUtils$)
1>.由于我默认就开启了自动创建topic,因此我们直接启动生产者:kafka-console-producer.sh --broker-list 10.1.3.116:9092 --topic yinzhengjie-kafka (在一台安装jdk8版本的机器上操作)
2>.紧接着我们启动消费者,观察是否能收到数据:kafka-console-consumer.sh --zookeeper 10.1.1.102:2181 --from-beginning --topic yinzhengjie-kafka(在一台jdk1.7上操作的)
解决办法:
这是由于无法识别我的Kafka集群的主机名,我的解决办法就是修改了Linux的hosts配置文件,
注意,以上两个问题的JDK版本是不一致的,但是问题最终都得到解决,和jdk版本无关!下面是查看java环境
生产者jdk版本如下:
消费者jdk版本如下:
三.使用--bootstrap-server参数无法消费Kafka种的数据
1>.启动生产者
2>.启动消费者拿不到数据
我的这个kafka版本是从:https://www.cloudera.com/documentation/kafka/latest/topics/kafka_packaging.html 下载的0.10.2.0版本。
我下载后采用的是CM部署的,但是无法使用“--bootstrap-server”进行消费。暂时还没有解决办法,打算周末在看看官方文档:http://kafka.apache.org/quickstart 。
好啦!时间不早了,我也该该走了,不然赶不上地铁了!!!晚安,兄弟们!
后记:
第三个问题我谷歌了很久没有找到相应的解决方案,最终我放弃了,使用了apache官方的Kafka版本,最终之前的那些烦恼问题都烟消云散啦!总结一句话,官网最权威!cloudera虽好,但别太过痴迷,如果你公司有钱买企业版本的那就另当别论了!(我生产环境种,使用CM免费版本部署Hadoop生态圈常用组件,将kafka和flume自己采用源码安装!)
关于kafka完全分布式版本可参考我之前的笔记:https://www.cnblogs.com/yinzhengjie/p/9209319.html。