Kafka主題 topic 的刪除

2021-09-27 02:23:29 字數 2022 閱讀 3736

step1:

如果需要被刪除topic 此時正在被程式 produce和consume,則這些生產和消費程式需要停止。

因為如果有程式正在生產或者消費該topic,則該topic的offset資訊一致會在broker更新。呼叫kafka delete命令則無法刪除該topic。

同時,需要設定 auto.create.topics.enable = false,預設設定為true。如果設定為true,則produce或者fetch 不存在的topic也會自動建立這個topic。這樣會給刪除topic帶來很多意向不到的問題。

所以,這一步很重要,必須設定auto.create.topics.enable = false,並認真把生產和消費程式徹底全部停止。

step2:

server.properties設定 delete.topic.enable=true

如果沒有設定 delete.topic.enable=true,則呼叫kafka 的delete命令無法真正將topic刪除,而是顯示(marked for deletion)

step3:

呼叫命令刪除topic:

./bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】

step4:

刪除kafka儲存目錄(server.properties檔案log.dirs配置,預設為"/data/kafka-logs")相關topic的資料目錄。

注意:如果kafka 有多個 broker,且每個broker 配置了多個資料盤(比如 /data/kafka-logs,/data1/kafka-logs ...),且topic也有多個分割槽和replica,則需要對所有broker的所有資料盤進行掃瞄,刪除該topic的所有分割槽資料。

一般而言,經過上面4步就可以正常刪除掉topic和topic的資料。但是,如果經過上面四步,還是無法正常刪除topic,則需要對kafka在zookeeer的儲存資訊進行刪除。具體操作如下:

(注意:以下步驟裡面,kafka在zk裡面的節點資訊是採用預設值,如果你的系統修改過kafka在zk裡面的節點資訊,則需要根據系統的實際情況找到準確位置進行操作)

step5:

找一台部署了zk的伺服器,使用命令:

bin/zkcli.sh -server 【zookeeper server:port】

登入到zk shell,然後找到topic所在的目錄:ls /brokers/topics,找到要刪除的topic,然後執行命令:

rmr /brokers/topics/【topic name】

即可,此時topic被徹底刪除。

如果topic 是被標記為 marked for deletion,則通過命令 ls /admin/delete_topics,找到要刪除的topic,然後執行命令:

rmr /admin/delete_topics/【topic name】

備註:

rmr /consumers/【consumer-group】

rmr /config/topics/【topic name】

其實正常情況是不需要進行這兩個操作的,如果需要,那都是由於操作不當導致的。比如step1停止生產和消費程式沒有做,step2沒有正確配置。也就是說,正常情況下嚴格按照step1 -- step5 的步驟,是一定能夠正常刪除topic的。

step6:

完成之後,呼叫命令:

./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】

檢視現在kafka的topic資訊。正常情況下刪除的topic就不會再顯示。

但是,如果還能夠查詢到刪除的topic,則重啟zk和kafka即可。

kafka刪除新建topic

原理翻譯可參考 刪除kafka的topic,參照 1 刪除kafka儲存目錄 server.properties檔案log.dirs配置,預設為 tmp kafka logs 相關topic目錄 2 kafka 刪除topic的命令是 bin kafka topics delete zookeepe...

kafka刪除topic資料

生產環境中,有乙個topic的資料量非常大。這些資料不是非常重要,需要定期清理。要求 預設保持24小時,某些topic 需要保留2小時或者6小時 主要有3個 1.基於時間 2.基於日誌大小 3.基於日誌起始偏移量 接下來,主要介紹基於時間的清除!kafka版本為 2.11 1.1.0 zk版本為 3...

Kafka徹底刪除topic

kafka預設僅做刪除標記,並沒有真實刪除,若要真實刪除topic server.properties新增 delete.topic.enable true,然後重啟 刪除測試 建立topic bin kafka topics.sh create zookeeper 127.0.0.1 2180 r...