我有一个2节点集群,有2个kafka-broker(每个1个)但是当我尝试生成一个复制因子= 2的kafka-topic时:
bin/kafka-topics.sh --create --zookeeper bigdata:2181 --replication-factor 2 --partitions 1 --topic programaCsd
我收到错误:
Error while executing topic command : replication factor: 2 larger than available brokers: 1
[2017-09-14 10:12:43,872] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: replication factor: 2 larger than available brokers: 1
(kafka.admin.TopicCommand$)
在ambari中,我可以看到两个kafka-broker正确安装并正常工作。
有些想法为什么会这样?
感谢。
答案 0 :(得分:2)
听起来你的kafka经纪人不是作为一个集群一起工作。您可以通过仔细查看您的zookeeper来检查这一点:
使用zookeeper shell:
bin/zookeeper-shell.sh bigdata:2181
列出所有经纪人ID:
ls /brokers/ids
您应该看到类似“ [1001,1002] ”的内容,具体取决于您在server.properties中设置brookerids的方式(请参阅属性broker.id)。
如果你只有一个身份证,而你的经纪人彼此不认识。
答案 1 :(得分:0)
最后,解决方案是完全删除kafka服务和代理,然后使用所需的配置同时为两个代理添加它们。部署之后,您可以在/kafka-logs/meta.properties中更改每个节点中的代理ID。
在重新安装kafka之前,最好删除系统中的所有主题,这样就不会有无效的领导者或副本。