错误 org.apache.kafka.common.errors.InvalidReplicationFactorException

ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException

我有一个带有 2 个 kafka-broker(每个 1 个)的 2 节点集群,但是当我尝试生成一个复制因子 = 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-brokers 都已正确安装并正常工作。

知道为什么会这样吗?

谢谢。

听起来您的 kafka 代理没有像集群一样协同工作。您可以通过仔细查看您的动物园管理员来检查这一点:

使用动物园管理员shell: bin/zookeeper-shell.sh bigdata:2181

列出所有brooker ids: ls /brokers/ids

您应该会看到类似“[1001, 1002]”的内容,具体取决于您在 server.properties 处设置溪流的方式(参见 属性 broker.id).

如果您只有一个 ID,那么您的经纪人就不会互相认识。

最后的解决方案是完全删除 kafka 服务和代理,然后使用所需的配置再次添加两个代理。部署后,您可以在 /kafka-logs/meta.properties.

中更改每个节点中的代理 ID

在重装kafka之前,最好删除系统中的所有topic,这样就不会有无效的leader和replicas。