1. 程式人生 > >Kafka Shell基本命令(包括topic的增刪改查)

Kafka Shell基本命令(包括topic的增刪改查)

pre table kafka tool for del 生產 scribe 風險

本節內容:

  1. 創建kafka topic
  2. 查看所有topic列表
  3. 查看指定topic信息
  4. 控制臺向topic生產數據
  5. 控制臺消費topic的數據
  6. 查看topic某分區偏移量最大(小)值
  7. 增加topic分區數
  8. 刪除topic,慎用,只會刪除zookeeper中的元數據,消息文件須手動刪除
  9. 查看topic消費進度

創建kafka topic

bin/kafka-topics.sh --zookeeper node01:2181 --create --topic t_cdr --partitions 30  --replication-factor 2

註: partitions指定topic分區數,replication-factor指定topic每個分區的副本數

  • partitions分區數:
    • partitions :分區數,控制topic將分片成多少個log。可以顯示指定,如果不指定則會使用broker(server.properties)中的num.partitions配置的數量
    • 雖然增加分區數可以提供kafka集群的吞吐量、但是過多的分區數或者或是單臺服務器上的分區數過多,會增加不可用及延遲的風險。因為多的分區數,意味著需要打開更多的文件句柄、增加點到點的延時、增加客戶端的內存消耗。
    • 分區數也限制了consumer的並行度,即限制了並行consumer消息的線程數不能大於分區數
    • 分區數也限制了producer發送消息是指定的分區。如創建topic時分區設置為1,producer發送消息時通過自定義的分區方法指定分區為2或以上的數都會出錯的;這種情況可以通過alter –partitions 來增加分區數。
  • replication-factor副本
    • replication factor 控制消息保存在幾個broker(服務器)上,一般情況下等於broker的個數。
    • 如果沒有在創建時顯示指定或通過API向一個不存在的topic生產消息時會使用broker(server.properties)中的default.replication.factor配置的數量

  1. 查看所有topic列表

bin/kafka-topics.sh --zookeeper node01:2181 --list

查看指定topic信息

bin/kafka-topics.sh --zookeeper node01:2181 --describe --topic t_cdr

控制臺向topic生產數據

bin/kafka-console-producer.sh --broker-list node86:9092 --topic t_cdr

控制臺消費topic的數據

bin/kafka-console-consumer.sh  --zookeeper node01:2181  --topic t_cdr --from-beginning

查看topic某分區偏移量最大(小)值

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable  --time -1 --broker-list node86:9092 --partitions 0

註: time為-1時表示最大值,time為-2時表示最小值

增加topic分區數

為topic t_cdr 增加10個分區

bin/kafka-topics.sh --zookeeper node01:2181  --alter --topic t_cdr --partitions 10

刪除topic,慎用,只會刪除zookeeper中的元數據,消息文件須手動刪除

bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper node01:2181 --topic t_cdr

查看topic消費進度

這個會顯示出consumer group的offset情況, 必須參數為--group, 不指定--topic,默認為所有topic

Displays the: Consumer Group, Topic, Partitions, Offset, logSize, Lag, Owner for the specified set of Topics and Consumer Group

$ bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker

required argument: [group] 
Option Description 
------ ----------- 
--broker-info Print broker info 
--group Consumer group. 
--help Print this message. 
--topic Comma-separated list of consumer 
   topics (all topics if absent). 
--zkconnect ZooKeeper connect string. (default: localhost:2181)

Example,

bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group pv

Group           Topic              Pid Offset   logSize    Lag    Owner 
pv              page_visits        0   21       21         0      none 
pv              page_visits        1   19       19         0      none 
pv              page_visits        2   20       20         0      none

Kafka Shell基本命令(包括topic的增刪改查)