web-dev-qa-db-ja.com

KafkaブローカーがクラスターIDを見つけられず、Dockerの再起動後に新しいIDを作成します

kafkaブローカーとzookeeperを使用してdockerを作成し、スクリプトを実行して開始します。フレッシュスタートを実行すると、正常に開始され、正常に実行されます(Windows-> WSL-> 2つのtmuxウィンドウ、1つのセッション)。kafkaまたはzookeeperをシャットダウンして再起動すると、正常に接続されます。

Dockerコンテナーを停止すると問題が発生します(docker stop my_kafka_container)。次に、スクリプト./run_dockerから始めます。スクリプトを開始する前に、古いコンテナを削除しますdocker rm my_kafka_containerそれからdocker runを実行します。

Zookeeperは正常に起動し、ファイルmeta.propertiesには前回の起動時の古いクラスターIDが含まれていますが、kafkaブローカーは何らかの理由でznode cluster/idでこのIDを見つけられず、新しいIDを作成しますmeta.propertiesに保存されているものです。

  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)

ブローカーがクラスターIDを変更しないようにするにはどうすればよいですか?

8

enter image description here

これは私がそれを解決した方法です。このファイルを検索し、名前を変更して正常に起動し、新しいファイルが作成されました。

私はKafka Macでbrewによってインストールされています

これがお役に立てば幸いです。

0
Li danyang

これを試して:

  • kafkaフォルダkafka_2.11-2.4.0\configにあるserver server.propertiesファイルを開きます
  • エントリlog.dirsを検索します
  • ディレクトリを指定した場合は、C:.......現在のディレクトリからの相対パスに変更します。 log.dirs = ../../logsの例

これは私のために働いた:)

0
Arif Hasan

これは、Kafka 2.4.0リリースで導入された新機能によるもので、[KAFKA-7335] - Store clusterId locally to ensure broker joins the right cluster。 Dockerの再起動が発生すると、この不一致により、Kafkaはローカルに保存されているclusterIdをZookeeperのclusterId(Dockerの再起動により変更された)に一致させようとしますが、上記のエラーがスローされます詳細については this link を参照してください。

0
Rishabh Bohra

WindowsマシンでKafkaサーバーを実行しているときに同じ問題が発生しました。

この問題を解決するには、以下を試してください:

  1. kafkaフォルダkafka_2.11-2.4.0\configにあるserver server.propertiesファイルを開きます(kafkaのバージョンを考慮すると、フォルダ名はkafka_である可能性があります)
  2. エントリlog.dirsを検索します
  3. Log.dirパスに次のようなWindowsディレクトリパスが含まれている場合、E:\ Shyam\Software\kafka_2.11-2.4.0\kafka-logsに単一のバックスラッシュ、つまり\が含まれている場合は、\を使用してダブルバックスラッシュに変更します。

それが役に立てば幸い。乾杯

0
Shyam Yadav