kafka控制臺命令
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控制臺命令