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のネタとして続きます。