kafka彻底删除topic
今天發(fā)現(xiàn)一個線上kafka(版本為0.8.2.2)多天前已不再消費的topic標(biāo)記為刪除(marked for deletion),而我們每天有定時刪除topic的shell腳本,會把無用的topic干掉,但發(fā)現(xiàn)這些topic只是被標(biāo)記為刪除,而并沒有真正刪除,其server.properties的相關(guān)配置如下:
delete.topic.enable=true
log.retention.hours=72
既然自動刪除沒起作用(后來探查到原因是我們的監(jiān)控服務(wù)還在訪問這個topic),那就手動刪除
要徹底把topic刪除需要把kafka中與該topic相關(guān)的本地數(shù)據(jù)目錄及zookeeper與該topic相關(guān)的路徑刪除。kafka的zookeeper root為/kafka,比如要刪除topic為${topic_name}
1.刪除kafka相關(guān)的數(shù)據(jù)目錄
首先查看數(shù)據(jù)目錄在server.properties配置如下: log.dirs=/data1/kafka_logs
執(zhí)行 rm -r /data1/kafka_logs/${topic_name}*
2.刪除kafka topic
${KAFKA_HOME}/bin/kafka-topics.sh --delete --zookeeper ${ZOOKEEPER_HOST}:2181/kafka --topic ${topic_name}
3.刪除zookeeper相關(guān)的路徑
進入${ZOOKEEPER_HOME}/bin/zkCli.sh
執(zhí)行下面的命令
rmr /kafka/consumers/${topic_name}-group
rmr /kafka/config/topics/${topic_name}
rmr /kafka/brokers/topics/${topic_name}
rmr /kafka/admin/delete_topics/${topic_name}
4.用下面命令查看相關(guān)的topic還在不在:
${KAFKA_HOME}/bin/kafka-topics.sh --list --zookeeper ${ZOOKEEPER_HOST}:2181/kafka --topic ${topic_name}
如果仍然刪除不了的話,需要檢查kafka數(shù)據(jù)目錄中的recovery-point-offset-checkpoint和replication-offset-checkpoint文件里是否有該topic的信息
轉(zhuǎn)載于:https://www.cnblogs.com/dailidong/p/7571083.html
總結(jié)
以上是生活随笔為你收集整理的kafka彻底删除topic的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC 返回视图时添加的模
- 下一篇: RMQ问题-ST方法