1. 程式人生 > >kafka控制臺命令

kafka控制臺命令

sin one 後臺 mongo shell ots daemon tools produce

Kafka 命令

Kafka啟動的時候使用 –daemon 後臺運行,其命令如下:

./kafka-server-start.sh –daemon ../config/server.properties

1) 查看當前某個group 消費的

./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group 1 --topic 000B_7F14

得到的結果為:

其中各參數解釋如下:

Group:消費的group id

Topic:主題

Pid:分區

Offset:消費的數目

logSize:總數

lag:未消費的條數

在執行這條命令的時候得到下面的提示:

WARN WARNING: ConsumerOffsetChecker is deprecated and will be dropped in releases following 0.9.0. Use ConsumerGroupCommand instead. (kafka.tools.ConsumerOffsetChecker$)

也就是說在0.9版本之後,該命令已經被廢棄了,所以,使用ConsumerGroupCommand命令取而代之。

2) 列出zk下的所有消費組

/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:19092 –list

得到結果為:

3) 創建topic

./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 2 --topic 00137F1A

其中指定該topic分為兩個區,只有一份數據。Replication有點類似mongodb中的副本集。

4) 新增partition

新增之前,查看topic的詳細信息如下:

Topic:2008_0020 PartitionCount:1 ReplicationFactor:2 Configs:

Topic: 2008_0020 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1

/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --partitions 3 --topic 2008_0020

原來只有1個parttions,現在增加到3個。

再次查看topic的信息:
Topic:2008_0020 PartitionCount:3 ReplicationFactor:2 Configs:

Topic: 2008_0020 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1

Topic: 2008_0020 Partition: 1 Leader: 0 Replicas: 0,1 Isr: 0,1

Topic: 2008_0020 Partition: 2 Leader: 1 Replicas: 1,2 Isr: 1,2

我們看到其topic的數目已經發生了改變。

5) 查看topic的詳細信息

/kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic 000B_7F14

得到的結果如下:

Topic: 000B_7F14 PartitionCount:2 ReplicationFactor:1 Configs:

Topic: 000B_7F14 Partition: 0 Leader: 0 Replicas: 0 Isr: 0

Topic: 000B_7F14 Partition: 1 Leader: 1 Replicas: 1 Isr: 1

其中topic:主題名稱

PartitionCount:分區數量

ReplicationFactor:表示該topic在不同的broker中需要保存幾份,值為1,說明在一個broker中保存,當前使用的是0.10版本,即,kafka 已經能夠支持在partition級別進行備份。

ISR: in-sync replicas,副本集所在的服務器。表示的是當前有效的broker.

6) 使用控制臺生產數據

./kafka-console-producer.sh --broker-list 127.0.0.1:19092 --topic S96

然後在下面寫入數據並換行,消費者將拿到數據

7) 使用控制臺消費數據

./kafka-console-consumer.sh --zookeeper localhost:2181 --topic S96 --from-beginning

如果後面加上from-beginning則會從最開始的位置進行消費

在使用這條命令的時候,在shell中會提示 using the new consumer by passing [bootstrap-server] instead of [zookeeper]

這個bootstrap-server具體與zookeeper之間的差別是?

Zookeeper 是直接連接的zk,而bootstrap-server則是連接的broker的ip.因為在0.9之後,kafka使用了新的consumer API進行消費。舊的API會逐步淘汰。

8) 查看所有的topic

./kafka-topics.sh –zookeeper 127.0.0.1:2181 –list

得到結果為:

2008_0020

000B_7F14

__consumer_offsets

也可以從zk的節點topics中查看,具體的命令為:

ls /config/topics ,得到的結果如下:

[ 2008_0020, __consumer_offsets, 000B_7F14]

同樣的,在/brokers/topics中能夠得到當前的所有topic

9) 查看某個分區的topic的偏移量最大最小值

./kafka-run-class.sh kafka.tools.GetOffsetShell –topic 000B_7F14 –broker-list 127.0.0.1:19092 –partitions 0

上面的命令旨在查看000B_7F14的分區1中的最大最小偏移量,得到的結果為:

000B_7F14:0:5544

查看groupid下對該topic消費的情況,可以得到:

./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker –zookeeper 127.0.0.1:2181 –group 1 –topic 000B_7F14

Group Topic Pid Offset logSize Lag Owner

1 000B_7F14 0 2094 5544 3450 none

可以看到當前的topic的最大值的確為5544

kafka控制臺命令