web-dev-qa-db-fra.com

Kafka Broker ne trouve pas l'ID du cluster et en crée un nouveau après le redémarrage du docker

J'ai créé le docker avec kafka broker et zookeeper pour le démarrer avec run script. Si je recommence à démarrer, il démarre normalement et fonctionne correctement (Windows -> WSL -> deux fenêtres tmux, une session Si j'arrête kafka ou zookeeper et que je le redémarre, il se connectera normalement.).

Un problème se produit lorsque j'arrête le conteneur docker (docker stop my_kafka_container). Ensuite, je commence par mon script ./run_docker. Dans ce script avant de commencer, je supprime l'ancien conteneur docker rm my_kafka_containeret ensuite le docker s'exécute.

Zookeeper démarre normalement et dans le fichier meta.properties, il a l'ancien identifiant de cluster du démarrage précédent, mais kafka broker pour une raison quelconque ne peut pas trouver par cluster/id znode cet identifiant et en crée un nouveau qui n'est pas ce qui est stocké dans meta.properties. Et j'obtiens

  ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.InconsistentClusterIdException: The Cluster ID m1Ze6AjGRwqarkcxJscgyQ doesn't match stored clusterId Some(1TGYcbFuRXa4Lqojs4B9Hw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.
        at kafka.server.KafkaServer.startup(KafkaServer.scala:220)
        at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
        at kafka.Kafka$.main(Kafka.scala:84)
        at kafka.Kafka.main(Kafka.scala)
[2020-01-04 15:58:43,303] INFO shutting down (kafka.server.KafkaServer)

Comment éviter que le courtier ne modifie l'ID du cluster?

8
Bohdan Myslyvchuk

enter image description here

Voilà comment je l'ai résolu. J'ai recherché ce fichier, l'ai renommé et l'ai démarré avec succès et un nouveau fichier a été créé.

Je suis Kafka installé par brew sous mac

J'espère que cela vous aide.

0
Li danyang

Essaye ça:

  • Ouvrez le fichier server.properties du serveur qui se trouve dans votre dossier kafka kafka_2.11-2.4.0\config
  • Rechercher l'entrée log.dirs
  • Si vous avez le répertoire spécifié C: ....... changez-le en relatif au répertoire courant. Exemple log.dirs = ../../logs

Cela a fonctionné pour moi :)

0
Arif Hasan

Cela est dû à une nouvelle fonctionnalité qui a été introduite dans la version Kafka 2.4.0 et c'est [KAFKA-7335] - Store clusterId locally to ensure broker joins the right cluster. Lorsque le redémarrage du docker se produit, Kafka essaie de faire correspondre le clusterId stocké localement avec le clusterId du gardien de zoo (qui a changé en raison du redémarrage du docker) en raison de cette incompatibilité, l'erreur ci-dessus est générée. Veuillez consulter ce lien pour plus d'informations.

0
Rishabh Bohra

J'ai rencontré le même problème lors de l'exécution de Kafka sur ma machine Windows.

Vous pouvez essayer ce qui suit pour résoudre ce problème:

  1. Ouvrez le fichier server.properties du serveur qui se trouve dans votre kafka dossier kafka_2.11-2.4.0\config (compte tenu de votre version de kafka, le nom du dossier pourrait être kafka_)
  2. Rechercher l'entrée log.dirs
  3. Si votre chemin log.dir contient un chemin de répertoire Windows comme celui-ci E:\Shyam\Software\kafka_2.11-2.4.0\kafka-logs qui a une seule barre oblique inverse, c'est-à-dire \, changez-le en double barre oblique inverse c'est-à-dire avec \

J'espère que ça aide. À votre santé

0
Shyam Yadav