web-dev-qa-db-fra.com

Kafka vers zookeeper génère une erreur

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

La commande ci-dessus de kafka produit une erreur

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)

Une idée?

9
Thanga

Dans mon cas, le problème était que je spécifiais un chroot inexistant kafka.

J'ai découvert que notre équipe des opérations de l'entreprise avait configuré le kafka chroot comme purple-elephants, et configuré la création de ce chroot à assurer au kafka redémarrage du service.

J'ai d'abord publié un Sudo service kafka restart et le journal montre que le chroot a été créé:

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

Ensuite, j'ai simplement émis:

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

En résumé, cela signifie que le kafka-topics.sh le script ne trouve aucun courtier Kafka inscrit auprès de ZooKeeper. Cela peut être dû à plusieurs raisons:

  1. Vos courtiers Kafka) ne fonctionnent pas.

  2. Votre Kafka courtier (s) sont en place, mais ils sont connectés à une instance ZooKeeper différente de celle à laquelle vous avez fait référence dans votre kafka-topics.sh commande.

  3. Votre Kafka courtier (s) sont en place et se connectent à l'instance ZooKeeper correcte, mais ils sont enregistrés sous un chroot différent de celui de votre commande. Dans votre exemple de --zookeeper localhost:2181/kafka, le chroot est le /kafka bit. Vous pouvez trouver le chroot utilisé par vos courtiers Kafka dans le $KAFKA_HOME/config/server.properties fichier, sous le zookeeper.connect propriété.

1
Mansoor Siddiqui

Essayez de supprimer/kafka car la commande est

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

Si cela se produit toujours, assurez-vous du chemin dans zookeeper.properties de

dataDir(default is /tmp/zookeeper)

et chemin dans server.properties de

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

lors de la création du sujet, il doit s'agir d'une URL zookeeper avec l'option --zookeeper. Cela devrait fonctionner la ligne suivante si zookeeper & kafka fonctionnent.

--zookeeper localhost:2181

Ce lien décrit comment créer un sujet. Vous pouvez également vérifier le nombre d'ID disponibles dans zookeeper cli. ./zkCli.sh & puis ls /brokers/ids. Au bail, un identifiant de courtier doit être affiché.

0
Darpan27

Dans mon cas, je n'ai démarré que zookeeper et j'ai oublié de démarrer le serveur kafka. J'ai également démarré le serveur kafka) puis créé le sujet. La commande a bien fonctionné. .

0
yaswanth