Kafka常用命令

2021-09-10 16:11:01 字數 4826 閱讀 6195

一,檢視當前kafka集群中topic的情況

bin/kafka-topics.sh --list --zookeeper127.0.0.1:2181

列出該zookeeper中記錄在案的topic列表,只有名字

二,檢視topic的分割槽和副本情況

命令:bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic test0

執行結果:

topic:test0 partitioncount:16 replicationfactor:3 configs:

topic: test0  partition: 0    leader: 0       replicas: 0,2,1 isr: 1,0,2

topic: test0 partition: 1 leader: 1 replicas: 1,2,0 isr: 1,0,2

topic: test0 partition: 2 leader: 2 replicas: 2,0,1 isr: 1,0,2

topic: test0 partition: 3 leader: 1 replicas: 1,2,0 isr: 1,0,2

topic: test0 partition: 4 leader: 2 replicas: 2,0,1 isr: 1,0,2

topic: test0 partition: 5 leader: 0 replicas: 0,1,2 isr: 1,0,2

topic: test0 partition: 6 leader: 1 replicas: 1,0,2 isr: 1,0,2

topic: test0 partition: 7 leader: 2 replicas: 2,1,0 isr: 1,0,2

topic: test0 partition: 8 leader: 2 replicas: 2,0,1 isr: 0,1,2

topic: test0 partition: 9 leader: 0 replicas: 0,2,1 isr: 0,1,2

topic: test0 partition: 10 leader: 1 replicas: 1,0,2 isr: 1,0,2

topic: test0 partition: 11 leader: 2 replicas: 2,1,0 isr: 1,0,2

topic: test0 partition: 12 leader: 0 replicas: 0,2,1 isr: 0,1,2

topic: test0 partition: 13 leader: 1 replicas: 1,0,2 isr: 1,0,2

topic: test0 partition: 14 leader: 2 replicas: 2,1,0 isr: 1,0,2

topic: test0 partition: 15 leader: 0 replicas: 0,1,2 isr: 0,1,2

結果分析:

第一行顯示partitions的概況,列出了topic名字,partition總數,儲存這些partition的broker數

以下每一行都是其中乙個partition的詳細資訊:

leader

是該partitons所在的所有broker中擔任leader的broker id,每個broker都有可能成為leader

replicas

顯示該partiton所有副本所在的broker列表,包括leader,不管該broker是否是存活,不管是否和leader保持了同步。

isrin-sync replicas的簡寫,表示存活且副本都已同步的的broker集合,是replicas的子集

舉例:比如上面結果的第一行:topic: test0 partition:0 leader: 0 replicas: 0,2,1 isr: 1,0,2

partition: 0

該partition編號是0

replicas: 0,2,1

代表partition0 在broker0,broker1,broker2上儲存了副本

isr: 1,0,2

代表broker0,broker1,broker2都存活而且目前都和leader保持同步

leader: 0

代表儲存在broker0,broker1,broker2上的這三個副本中,leader是broker0

leader負責讀寫,broker1、broker2負責從broker0同步資訊,平時沒他倆什麼事

當producer傳送乙個訊息時,producer自己會判斷傳送到哪個partiton上,如果發到了partition0上,訊息會發到leader,也就是broker0上,broker0處理這個訊息,broker1、broker2從broker0同步這個訊息

如果這個broker0掛了,那麼kafka會在isr列表裡剩下的broker1、broker2中選乙個新的leader

三,建立topic

命令:bin/kafka-topics.sh --create --topic test0–zookeeper 127.0.0.1:2181 --config max.message.bytes=12800000 --config flush.messages=1 --partitions 5 --replication-factor 1

說明:–topic後面的test0是topic的名稱

–zookeeper應該和server.properties檔案中的zookeeper.connect一樣

–config指定當前topic上有效的引數值

–partitions指定topic的partition數量,如果不指定該數量,預設是server.properties檔案中的num.partitions配置值

–replication-factor指定每個partition的副本個數,預設1個

四,刪除topic

比如刪除test0這個topic

1,刪除kafka的topic

命令:bin/kafka-topics.sh --delete --zookeeper 127.0.0.1:2181 --topic test0

如果server.properties中沒有把delete.topic.enable設為true,那麼此時的刪除並不是真正的刪除,而是把topic標記為:marked for deletion

2,刪除kafka中該topic相關的目錄。

在server.properties中找到配置log.dirs,把該目錄下test0相關的目錄刪掉

3,登入zookeeper client。

命令:/home/zookeeper/bin/zkcli.sh

4,刪除zookeeper中該topic相關的目錄

命令:rm -r /kafka/config/topics/test0

rm -r /kafka/brokers/topics/test0

rm -r /kafka/admin/delete_topics/test0 (topic被標記為marked for deletion時需要這個命令)

5,重啟zookeeper和broker

五,檢視topic消費到的offset

命令:bin/kafka-run-class.sh kafka.tools.getoffsetshell --broker-list 127.0.0.1:9092 --topic test0 --time -1

執行結果:

test0:0:177496

test0:1:61414

六,檢視topic各個分割槽的訊息的資訊

命令:bin/kafka-run-class.sh kafka.tools.consumeroffsetchecker --group testgroup --topic test0 --zookeeper 127.0.0.1:2181

執行結果:

group topic pid offset logsize lag

消費者組 topic名字 partition id 當前已消費的條數 總條數 未消費的條數

七,修改topic的partition數量(只能增加不能減少)

命令:bin/kafka-topics.sh --alter --zookeeper 127.0.0.1:2183 --partitions 10 --topic test0

八,修改topic的副本數

1,自己寫乙個檔案addreplicas.json,檔案的內容是json格式的,比如:

「version」: 1,

「partitions」: [

,

,]

2,執行命令:

bin/kafka-reassign-partitions.sh --zookeeper 127.0.0.1:9092 --reassignment-json-file addreplicas.json --execute

九,kafka服務啟動

命令:bin/kafka-server-start.sh -daemon config/server.properties

十,下線broker

比如下線broker0

命令:bin/kafka-run-class.sh kafka.admin.shutdownbroker --zookeeper 127.0.0.1:2181 --broker 0 --num.retries 3 --retry.interval.ms 60

shutdown broker

kafka常用命令

kafka常用操作命令 l檢視當前伺服器中的所有topic bin kafka topics.sh list zookeeper hadoop02 2181 l建立topic kafka topics.sh create zookeeper hadoop02 2181 replication fac...

kafka常用命令

啟動集群 nohup bin kafka server start.sh config server.properties 建立topic kafka topics topictt replication factor3 partitions3 create zookeeper hadoop1 21...

Kafka 常用命令

kafka console producer broker list 127.0.0.1 9092 topic mytopic kafka console consumer bootstrap server 127.0.0.1 9092 topic mytopic 建立主題,replication ...