LoginSignup
6
6

More than 5 years have passed since last update.

Apache kafkaでトピックを削除する

Last updated at Posted at 2016-03-19

GYAOの窓際エンジニア 玉利です。

久しぶりに試験用のkafkaプロセスを起動したら、データが吹っ飛んでたらしいです。
nifiのGetKafkaを仕掛けると、ガンガンとエラーが表示されてこまりました。

[2016-03-19 18:21:55,250] ERROR [Replica Manager on Broker 0]: Error when processing fetch request for partition [nifi,0] offset 605 from consumer with correlation id 522. Possible cause: Request for offset 605 but we only have log segments in the range 0 to 0. (kafka.server.ReplicaManager)

トピックを削除する

どうやら、このオフセットポインタを削除する方法が見つかりません。本当は正しい復旧方法がありそうなものですが、テスト環境なのでざっくりと綺麗にしてみます。

kafkaのコンフィグファイルに、以下のようにdelete可能の設定を入れます。ついでに試行錯誤なのでauto.createもつけてあげました。無保証です。

vim /usr/local/etc/kafka/server.properties
delete.topic.enable=true
#auto.create.topics.enable=true

kafkaを再起動してconfigの設定を有効化

kafka-server-stop.sh /usr/local/etc/kafka/server.properties
kafka-server-start.sh /usr/local/etc/kafka/server.properties &

kafka-topic.shで削除コマンドを入れます。

kafka-topics.sh --delete --zookeeper localhost:2181 --topic <トピック名>

削除するときは、consumer側も止めておいてください。止まってないと削除が行えないみたいで、はまりました。

Topic <トピック名> is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

[2016-03-19 18:28:11,240] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions [nifi,0] (kafka.server.ReplicaFetcherManager)
[2016-03-19 18:28:11,241] INFO Deleting index /usr/local/var/lib/kafka-logs/nifi-0/00000000000000000000.index (kafka.log.OffsetIndex)
[2016-03-19 18:28:11,241] INFO Deleted log for partition [nifi,0] in /usr/local/var/lib/kafka-logs/nifi-0. (kafka.log.LogManager)

トピックリストを取得してみます。

kafka-topics.sh --list --zookeeper localhost:2181

トピック名が消えてました。めでたしめでたし。

しかし、私の問題は解決していませんでした。別にNiFiのネタとして続きます。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6