kafka徹底刪除topic


 

 

如果只是用kafka-topics.sh的delete命令刪除topic,會有兩種情況:

  1. 如果當前topic沒有使用過即沒有傳輸過信息:可以徹底刪除
  2. 如果當前topic有使用過即有過傳輸過信息:並沒有真正刪除topic只是把這個topic標記為刪除(marked for deletion)。

要徹底把情況2中的topic刪除必須把kafka中與當前topic相關的數據目錄和zookeeper與當前topic相關的路徑一並刪除。

相關組件的版本

zookeeper: 3.4.6

kafka: 0.9.0.0

 這里假設要刪除的topic是test,kafka的zookeeper root為/kafka

刪除kafka相關的數據目錄

數據目錄請參考目標機器上的kafka配置:server.properties -> log.dirs=/var/kafka/log/tmp

su rm -r /var/kafka/log/tmp/test*

 

刪除kafka topic

/home/kafka/bin/kafka-topics.sh --delete --zookeeper HadoopMaster:2181/kafka --topic test

 

刪除zookeeper相關的路徑

  • 打開zookeeper client
/home/ZooKeeper/bin/zkCli.sh
  • 執行下面的命令

把test替換成你要刪除的topic

復制代碼
 
#刪除topic test的consumer group,如果有消費記錄的話
rmr /kafka/consumers/test-group
rmr /kafka/config/topics/test rmr /kafka/brokers/topics/test rmr /kafka/admin/delete_topics/test
 
復制代碼

 

完成

重啟zookeeper和kafka可以用下面命令查看相關的topic還在不在:

/home/kafka/bin/kafka-topics.sh --list --zookeeper HadoopMaster:2181/kafka


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM