web-dev-qa-db-ja.com

zookeeperでkafka=コンシューマグループを削除

Zookeeper 3.4.6でkafka_2.9.2-0.8.1.1を使用しています。

Zookeeperから消費者グループを自動的に削除できるユーティリティはありますか?または、zookeeperの/ consumers/[group_id]の下にあるものをすべて削除できますか?後者の場合、私が不足しているものはありますか?これはライブシステムで行うことができますか?

更新:kafka=バージョン2.3.0の時点で、新しいユーティリティがあります:

> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --delete --group my-group

関連ドキュメント: http://kafka.Apache.org/documentation/#basic_ops_consumer_lag

詳細については、以下を参照してください

16
Foo L

現在、Kafkaコンシューマグループを削除する唯一の方法は、Zookeeperパス/consumers/[group_id]を手動で削除することです。

消費者グループを削除するだけの場合、Zookeeperパスを手動で削除することについて心配する必要はありませんが、オフセットを巻き戻すためにそれを行う場合、以下が役立ちます。

まず、Zookeeperパスを削除する前に、コンシューマーグループに属するすべてのコンシューマーを停止する必要があります。そうしないと、これらのコンシューマーは新しく生成されたメッセージを消費せず、すぐにZookeeperクラスターへの接続を閉じます。

コンシューマを再起動するときに、コンシューマを最初から開始する場合は、auto.offset.resetプロパティをsmallest(または新しいKafkaリリースのearliest)に渡します。プロパティのデフォルト値はlargest(または新しいKafkaリリースではlatest)です。これにより、再起動コンシューマは最大オフセットの後に読み取りを行い、新しく生成されたメッセージのみを消費します。プロパティの詳細については、Kafkaドキュメントの Consumer Config を参照してください。

参考までに、質問 があります。どのように消費者のオフセットを巻き戻すことができますか? Kafka FAQにありますが、あまり役に立ちません。

17
Heejin

V0.9.0以降、Kafka=は/binそのうちの1つはkafka-consumer-groups.shツール。これにより、コンシューマグループが削除されます。 ./kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>

28
eodgooch

新しい消費者(zookeeperではなくkafkaトピックを使用してオフセットを管理する)の場合、kafkaの組み込みツールを使用してグループ情報を削除することはできません。

kafka-consumer-groups.shスクリプトを使用して、新しいスタイルのコンシューマーのグループ情報を削除しようとする例は次のとおりです。

bin/kafka-consumer-groups.sh --bootstrap-server "kafka:9092" --delete --group "indexer" --topic "cleaned-logs"
Option '[delete]' is only valid with '[zookeeper]'. Note that there's no need to delete group metadata for the new consumer as the group is deleted when the last committed offset for that group expires.

その応答の重要な部分は次のとおりです。

そのグループの最後にコミットされたオフセットが期限切れになるとグループが削除されるため、新しいコンシューマーのグループメタデータを削除する必要がないことに注意してください。

これは、監視の観点からいらいらさせられます(特に burrow のような方法でオフセットを追跡する場合)。これは、コード内のコンシューマーグループ名を変更すると、古いグループが後ろにあることを常に確認できるためです。それらのオフセットが期限切れになるまで、それらのオフセットで。

仮に、そのトピックに墓石を手動で書くこともできます(これは オフセット有効期限 の間に起こります)が、これを簡単にするツールは見つかりませんでした。

23
turtlemonvh

cLIでkafkaからグループを削除できます

kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group group_name
6
Rudy