Kafka到zookeeper命令会产生错误

Tha*_*nga 8 apache-kafka apache-zookeeper

bin/kafka-topics.sh --create --topic activityTopic --zookeeper localhost:2181/kafka --partitions 1 --replication-factor 1
Run Code Online (Sandbox Code Playgroud)

来自kafka的上述命令会产生错误

Error while executing topic command   org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =  NoNode for /brokers/ids
 org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =   NoNode for /brokers/ids
at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47)
at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:685)
at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:413)
at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:409)
at kafka.utils.ZkUtils$.getChildren(ZkUtils.scala:462)
at kafka.utils.ZkUtils$.getSortedBrokerList(ZkUtils.scala:78)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:170)
at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:55)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1472)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1500)
at org.I0Itec.zkclient.ZkConnection.getChildren(ZkConnection.java:99)
at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:416)
at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:413)
at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Cha*_*aye 5

就我而言,问题在于我指定了一个不存在的 kafka chroot。

我发现我们公司的运维团队已经将 kafka chroot 配置为purple-elephants,并配置了这个 chroot 的创建以确保在 kafka 服务重启时。

首先我发出了 asudo service kafka restart并且日志显示 chroot 已创建:

Ensuring chroot '/purple-elephants' exists
Starting Kafka server.                            
Run Code Online (Sandbox Code Playgroud)

然后我简单地发出:

bin/kafka-topics.sh --create --topic activityTopic --zookeeper localhost:2181/purple-elephants --partitions 1 --replication-factor 1
Run Code Online (Sandbox Code Playgroud)