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