Kafkaトピックでメッセージを読み込もうとしていますが、読み込めません。プロセスはメッセージを読まずに強制終了します。
ここに私が得るリバランスエラーがあります:
[2014-03-21 10:10:53,215] ERROR Error processing message, stopping consumer: (kafka.consumer.ConsoleConsumer$)
kafka.common.ConsumerRebalanceFailedException: topic-1395414642817-47bb4df2 can't rebalance after 4 retries
at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.syncedRebalance(ZookeeperConsumerConnector.scala:428)
at kafka.consumer.ZookeeperConsumerConnector.kafka$consumer$ZookeeperConsumerConnector$$reinitializeConsumer(ZookeeperConsumerConnector.scala:718)
at kafka.consumer.ZookeeperConsumerConnector$WildcardStreamsHandler.<init>(ZookeeperConsumerConnector.scala:752)
at kafka.consumer.ZookeeperConsumerConnector.createMessageStreamsByFilter(ZookeeperConsumerConnector.scala:142)
at kafka.consumer.ConsoleConsumer$.main(ConsoleConsumer.scala:196)
at kafka.consumer.ConsoleConsumer.main(ConsoleConsumer.scala)
Consumed 0 messages
ConsumerOffsetChecker
を実行しようとしましたが、これがエラーです。私はこれを解決する方法をまったく知りません。誰でもいいの?
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect localhost:9092 --topic mytopic --group topic_group
Group Topic Pid Offset logSize Lag Owner
Exception in thread "main" org.I0Itec.zkclient.exception.ZkNoNodeException: org.Apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /consumers/
at org.I0Itec.zkclient.exception.ZkException.create(ZkException.Java:47)
at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.Java:685)
at org.I0Itec.zkclient.ZkClient.readData(ZkClient.Java:766)
at org.I0Itec.zkclient.ZkClient.readData(ZkClient.Java:761)
at kafka.utils.ZkUtils$.readData(ZkUtils.scala:459)
at kafka.tools.ConsumerOffsetChecker$.kafka$tools$ConsumerOffsetChecker$$processPartition(ConsumerOffsetChecker.scala:59)
at kafka.tools.ConsumerOffsetChecker$$anonfun$kafka$tools$ConsumerOffsetChecker$$processTopic$1.apply$mcVI$sp(ConsumerOffsetChecker.scala:89)
at kafka.tools.ConsumerOffsetChecker$$anonfun$kafka$tools$ConsumerOffsetChecker$$processTopic$1.apply(ConsumerOffsetChecker.scala:89)
at kafka.tools.ConsumerOffsetChecker$$anonfun$kafka$tools$ConsumerOffsetChecker$$processTopic$1.apply(ConsumerOffsetChecker.scala:89)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at kafka.tools.ConsumerOffsetChecker$.kafka$tools$ConsumerOffsetChecker$$processTopic(ConsumerOffsetChecker.scala:88)
at kafka.tools.ConsumerOffsetChecker$$anonfun$main$3.apply(ConsumerOffsetChecker.scala:153)
at kafka.tools.ConsumerOffsetChecker$$anonfun$main$3.apply(ConsumerOffsetChecker.scala:153)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at kafka.tools.ConsumerOffsetChecker$.main(ConsumerOffsetChecker.scala:152)
at kafka.tools.ConsumerOffsetChecker.main(ConsumerOffsetChecker.scala)
Caused by: org.Apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /consumers/
at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:102)
at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:42)
at org.Apache.zookeeper.ZooKeeper.getData(ZooKeeper.Java:927)
at org.Apache.zookeeper.ZooKeeper.getData(ZooKeeper.Java:956)
at org.I0Itec.zkclient.ZkConnection.readData(ZkConnection.Java:103)
at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.Java:770)
at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.Java:766)
at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.Java:675)
... 16 more
私は最近、同様の問題を抱えています。コンシューマー構成rebalance.backoff.msおよびzookeeper.session.timeout.ms約5〜10秒。
最初のパラメーターは、kafkaにリバランスを再試行する前にさらに待つように指示します。 2つ目は、kafkaに、動物園管理者に接続しようとしている間、より忍耐強くなるように伝えます。
他の設定オプションは 公式ドキュメント にあります。
これはおそらく、ブローカーがZookeeperに接続したときにそれらのノードを正しく作成しなかったことを意味します。/consumerパスは、消費しようとするときに存在する必要があります。
デバッグのいくつかのパスを次に示します。
トピックを作成しましたか?
その場合:
そうでない場合:
$KAFKA_DIR/bin/kafka-create-topic.sh
を使用してトピックを作成する必要があります。使用方法の詳細については、スクリプトの内部をご覧ください。Kafka.tools.ConsumerOffsetCheckerにバグがあります。消費されたオフセット情報を保持している特定のZookeeperノードが終了しない場合、ツールは実行を終了します。
たとえば、消費者グループ「mygroup」とトピック「topictest」があるとします。次に、パーティション2のオフセットがZnodeで維持されます:/ consumers/mygroup/offsets/topictest/2。
Znodeにトピックtopictestのパーティション2のエントリがない場合、コンシューマオフセットチェッカーツールはパーティション2のオフセットをチェックしている間に終了します。基本的に、Znode/consumers/mygroup/offsetsの最初のパーティション "n" Zookeeperに/ topictest/nがありません。
別の問題は、jarの競合が原因である可能性があります。ライブラリフォルダーに異なるバージョンの同じjarが保存されている場合。この問題が発生する可能性があります。 scala-library、zkclient、zookeeper、kafka-clientなどのjarは、異なるバージョンで複製しないでください。
おそらくあなたのブローカーはオフラインであり、Zookeeperに接続できません。$KAFKA_ROOT_DIR/bin
特定のトピックから消費できるかどうかを確認するためのパス。