Kafka 經常使用命令總結

技術專欄:github.com/yongxinz/te…git

同時,也歡迎關注個人微信公衆號 AlwaysBeta,更多精彩內容等你來。github

在 0.9.0.0 以後的 Kafka,出現了幾個新變更,一個是在 Server 端增長了 GroupCoordinator 這個角色,另外一個較大的變更是將 topic 的 offset 信息由以前存儲在 zookeeper 上改成存儲到一個特殊的 topic(__consumer_offsets)中。bootstrap

本文測試版本:kafka_2.11-2.2.0bash

啓動 Kafka

後臺常駐方式,帶上參數 -daemon,如:微信

/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
複製代碼

指定 JMX port 端口啓動,指定 jmx,能夠方便監控 Kafka 集羣markdown

JMX_PORT=9991 /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
複製代碼

中止 Kafka

/usr/local/kafka/bin/kafka-server-stop.sh
複製代碼

Topic

建立 Topic

參數 --topic 指定 Topic 名,--partitions 指定分區數,--replication-factor 指定備份數:工具

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
複製代碼

注意,若是配置文件 server.properties 指定了 Kafka 在 zookeeper 上的目錄,則參數也要指定,不然會報無可用的 brokers(下面部分命令也有一樣的狀況),如:oop

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test
複製代碼

列出全部 Topic

/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181 
複製代碼

查看 Topic

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test 
複製代碼

增長 Topic 的 partition 數

/usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 5 
複製代碼

查看 topic 指定分區 offset 的最大值或最小值

time 爲 -1 時表示最大值,爲 -2 時表示最小值:測試

/usr/local/kafka/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list 127.0.0.1:9092 --partitions 0 
複製代碼

刪除 Topic

/usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --topic test --delete 
複製代碼

生產消息

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
複製代碼

消費消息

從頭開始

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
複製代碼

從尾部開始

從尾部開始取數據,必須要指定分區:spa

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0
複製代碼

指定分區

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0
複製代碼

取指定個數

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0 --max-messages 1 
複製代碼

消費者 Group

指定 Group

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group test_group --from-beginning
複製代碼

消費者 Group 列表

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
複製代碼

查看 Group 詳情

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe
複製代碼

輸出:

Consumer group 'test_group' has no active members.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
test            0          5               5               0               -               -               -

# CURRENT-OFFSET: 當前消費者羣組最近提交的 offset,也就是消費者分區裏讀取的當前位置
# LOG-END-OFFSET: 當前最高水位偏移量,也就是最近一個讀取消息的偏移量,同時也是最近一個提交到集羣的偏移量
# LAG:消費者的 CURRENT-OFFSET 與 broker 的 LOG-END-OFFSET 之間的差距
複製代碼

刪除 Group 中 Topic

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test --delete
複製代碼

刪除 Group

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete
複製代碼

平衡 leader

/usr/local/kafka/bin/kafka-preferred-replica-election.sh --bootstrap-server localhost:9092
複製代碼

自帶壓測工具

/usr/local/kafka/bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092 
複製代碼

以上

專欄地址: github.com/yongxinz/te…

相關文章
相關標籤/搜索