web-dev-qa-db-ja.com

Kafka zookeeperコマンドを実行するとエラーが発生する

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)

何か案が?

9
Thanga

私の場合、問題は存在しないkafka chroot。を指定していたことでした。

私たちの会社の運用チームがkafka chrootを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
3
Charney Kaye

簡単に言えば、これはkafka-topics.shスクリプトがZooKeeperに登録されているアクティブなKafkaブローカーを見つけられないことを意味します。これにはいくつかの理由が考えられます。

  1. あなたのKafkaブローカーは実行されていません。

  2. あなたのKafkaブローカーは稼働していますが、それらはkafka-topics.shコマンドで参照したものとは異なるZooKeeperインスタンスに接続されています。

  3. あなたのKafkaブローカーは稼働しており、正しいZooKeeperインスタンスに接続していますが、コマンド内のものとは異なるchrootの下に登録されています。--zookeeper localhost:2181/kafkaの例では、chroot /kafkaビットです。$KAFKA_HOME/config/server.propertiesファイルのzookeeper.connectプロパティで、Kafkaブローカーが使用しているchrootを確認できます。

1

コマンドが/ 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)
1
Tushar

トピックの作成中は、-zookeeperオプションを指定したzookeeper urlである必要があります。 zookeeper&kafkaが機能している場合は、次の行が機能するはずです。

--zookeeper localhost:2181

このリンクはトピックの作成方法を説明しています。 Zookeeper CLIで利用可能なIDの数を確認することもできます。 ./zkCli.sh&次にls /brokers/ids。少なくとも1つのブローカーIDが表示されます。

0
Darpan27

私の場合、私はzookeeperのみを起動し、起動を忘れていましたkafkaサーバー。kafkaサーバーも起動し、トピックを作成しました。コマンドは正常に機能しました。

0
yaswanth