Apache kafka 尝试在Apache Kafka上创建主题时出错

Apache kafka 尝试在Apache Kafka上创建主题时出错,apache-kafka,Apache Kafka,我正在尝试使用创建卡夫卡主题 $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testing 但报告了以下错误: Error while executing topic command : Not all brokers have rack information. Add --disable-rack-aware

我正在尝试使用创建卡夫卡主题

$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testing
但报告了以下错误:

Error while executing topic command : Not all brokers have rack information. Add --disable-rack-aware in command line to make replica assignment without rack information.
[2018-01-23 15:03:44,471] ERROR kafka.admin.AdminOperationException: Not all brokers have rack information. Add --disable-rack-aware in command line to make replica assignment without rack information.
    at kafka.admin.AdminUtils$.getBrokerMetadatas(AdminUtils.scala:443)
    at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:461)
    at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:110)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:63)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)
 (kafka.admin.TopicCommand$)
两个
zookeeper

$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties 
kafka服务器

$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties 
已成功启动


添加<代码>--禁用机架感知将解决此问题,但如何使用机架信息进行副本分配

我想不是所有的代理都有机架配置。为密钥
broker.rack
Grep您的server.properties。如果这只出现在部分而不是所有服务器配置中,这就是问题的原因


在这里,您可以找到有关卡夫卡机架感知的更多详细信息:

当您使用
broker.rack
配置一些代理,而不使用
broker.rack
配置其他代理时,当您在集群上创建manuel主题(自动主题创建忽略机架信息)时,将生成错误(正是您得到的)

要解决此问题,请执行以下操作:

选项1:在所有代理上放置属性
broker.rack=null

选项2:编辑所有缺少代理的代理上的属性
broker.rack
,该属性将显示机架的id

选项3:将属性<代码>--禁用机架感知添加到卡夫卡主题命令中

有关机架感知的更多详细信息,请参阅