kafka to zookeeper命令产生错误

a14dhokn  于 2021-06-07  发布在  Kafka
关注(0)|答案(5)|浏览(420)
bin/kafka-topics.sh --create --topic activityTopic --zookeeper localhost:2181/kafka --partitions 1 --replication-factor 1

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)

你知道吗?

3pmvbmvn

3pmvbmvn1#

在创建主题时,它应该是带有--zookeeper选项的zookeeper url。如果zookeeper和kafka正在工作,它应该工作如下。

--zookeeper localhost:2181

此链接介绍如何创建主题。您还可以在zookeeper cli中检查可用ID的编号。 ./zkCli.sh &那么 ls /brokers/ids . 至少应显示一个代理id。

tf7tbtn2

tf7tbtn22#

就我而言,我只启动了zookeeper,忘记了启动kafka服务器。我也启动了Kafka服务器,然后创建了主题。命令很有效。

wn9m85ua

wn9m85ua3#

简而言之,这意味着 kafka-topics.sh 脚本找不到任何在zookeeper注册的活动kafka代理。这可能有几个原因:
你的Kafka经纪人没有运行。
您的kafka代理已启动,但它们连接到的zookeeper示例与您在应用程序中引用的示例不同 kafka-topics.sh 命令。
您的kafka代理已启动,并正在连接到正确的zookeeper示例,但它们注册的chroot与您命令中的chroot不同。在你的例子中 --zookeeper localhost:2181/kafka ,chroot是 /kafka 钻头。你可以在网站上找到Kafka经纪人使用的chroot $KAFKA_HOME/config/server.properties 文件,在 zookeeper.connect 财产。

x7yiwoj4

x7yiwoj44#

在我的例子中,问题是我指定了一个不存在的kafka chroot。
我发现我们公司的行动小组把Kafka的脚印配置成 purple-elephants ,并将此chroot的创建配置为在kafka服务重新启动时确保。
首先我发布了 sudo service kafka restart 日志显示chroot是创建的:

Ensuring chroot '/purple-elephants' exists
Starting Kafka server.

然后我简单地说:

bin/kafka-topics.sh --create --topic activityTopic --zookeeper localhost:2181/purple-elephants --partitions 1 --replication-factor 1
pbpqsu0x

pbpqsu0x5#

按命令所示,尝试删除/kafka

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic Falcon

如果仍然发生,请确定zookeeper.properties中的路径

dataDir(default is /tmp/zookeeper)

和server.properties中的路径

log.dirs(default is /tmp/kafka-logs)

相关问题