kafka topic常用命令

2022-08-18 05:45:08 字數 3187 閱讀 4829

kafka topic常用命令

./bin/kafka-topics.sh

--create

--zookeeper localhost:2181

--replication-factor 1 #副本數量

--partitions 1 #分割槽數量

--topic test1

./bin/kafka-topics.sh

--list

--zookeeper local:2181

檢視所有topic 的詳細資訊

./bin/kafka-topics.sh

--describe

--zookeeper localhost:2181

檢視乙個topic的詳細資訊

./bin/kafka-topic.sh

--describe

--topic topicname

--zookeeper localhost:2181

如果只是執行命令刪除topic,topic的資料並不會被刪除

想要完全刪除topic需要以下步驟:

step1

把正在執行的 produce和consume停止,設定auto.create.topics.enable = false(可選)。server.properties設定delete.topic.enable=true,如果delete.topic.enable沒有設定為true那麼刪除topic的時候只是被標記為刪除而不會真正的刪除。

step2

執行刪除命令:

./bin/kafka-topics.sh 

--delete

--zookeeper localhost:2181

--topic topicname

step3

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

注意:如果kafka有多個broker,且每個broker配置了多個資料盤,例如/data/kafka-logs,/data1/kafka-logs,且topic有多個分割槽partition和多個副本replication,則需要把所有的broker的所有資料盤進行掃瞄,刪除該topic的所有資料

經過以上基本就能刪除topic以及topic的資料了,如果還無法正常刪除topic,那麼請繼續

step4

找一台部署了zk的伺服器,登入zookeeper:

./bin/zkcli.sh -server localhost:2181
登陸到zk shell之後,找到topic所在的目錄:

ls /brokers/topics
找到要刪除的topic,然後執行:

rmr /brokers/topics/topicname
如果topic是被標記為marked for deletion狀態,則是因為你沒有把delete.topic.enable沒有設定為true,執行:

ls /admin/delete_topic
找到要刪除的topic之後執行:

rmr /admin/delete_topic/topicname
備註

rmr /consumers/【consumer-group】

rmr /config/topics/【topic name】

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

注意:分割槽數量相對於原來,只能增加不能減少

./bin/kafka-topics.sh

--alter

--partitions 15

--zookeeper localhost:2181

--topic topicname

step1:檢視topic資訊

首先我們檢視以下kafkatest這個topic的資訊

可以看出kafkatest這個topic是有1個副本的

vim increase-replication-factor.json
新增內容:

]

./bin/kafka-reassign-partition.sh

--execute

--reassignment-json-file increase-replication-factor.json

--zookeeper localhost:2181

返回資訊:

再次檢視kafkatest這個topic的詳細資訊:

可以看到kafkatest這個topic的分割槽副本數量已經變成了兩個分別是1001,1002

參考文獻:

kafka如何徹底刪除topic及資料:

docker常用命令 Docker 常用命令筆錄

格式docker run 選項 映象 命令 引數.示例docker run it rm ubuntu 16.04 bash 示例解釋 it 這是兩個引數,乙個是 i,表示互動式操作,乙個是 t表示終端 rm 這個引數是說容器退出後隨之將其刪除 ubuntu 16.04 這是指用ubuntu 16.0...

常用命令 Git 常用命令大全

安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...

Linux常用命令 vi vim常用命令介紹

vi vim是linux系統自帶的乙個功能豐富的文字編輯器 命令字元 介紹dd 雙擊d 剪下當前行 num dd 雙擊d 剪下當前行 例如10dd可以刪除10行 yy拷貝當前行 p將內容貼上至游標所示位置 命令 說明 set number 頁面顯 hi 檢視當前系統提供的高亮模式 match col...