使用Apache Kafka删除主题
我是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的配置文件中,加入以下内容以启用删除功能。由于这只是一个试验性的功能,所以我还添加了auto.create。请注意,此功能没有保证。
vim /usr/local/etc/kafka/server.properties
delete.topic.enable=true
#auto.create.topics.enable=true
重新启动Kafka并激活配置设置
运行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 <主题名称>
当你要删除时,请确保消费者端也停止运行。如果没有停止,似乎无法进行删除,我陷入困境了。
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命令,尝试获取主题列表,Zookeeper的地址是localhost:2181。
话题的名称已经消失了。真是可喜可贺。
但是,我的问题并没有得到解决。我会继续将其作为Nifi的话题。