1. 程式人生 > >Kafka學習筆記:Kafka命令列工具

Kafka學習筆記:Kafka命令列工具

Kafka命令列工具

啟動Kafka

kafka-server-start.sh /opt/software/kafka_2.11-1.1.0/config/server.properties &

檢視所有Topic列表

kafka-topics.sh --zookeeper Hadoop01:2181 --list

檢視指定Topic資訊

kafka-topics.sh --describe --zookeeper Hadoop01:2181 --replication-factor 1 --partitions 1 --topic Demo1

檢視Topic某分割槽偏移量最大(小)值

kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable --time -1 --broker-list node86:9092 --partitions 0 注意: time為-1時表示最大值,time為-2時表示最小值

建立Topic

kafka-topics.sh --create --zookeeper Hadoop01:2181 --replication-factor 1 --partitions 1 --topic Demo1

  • partitions:分割槽數,可以顯式指定,如果不指定則會使用broker(server.properties)中的num.partitions配置的數量 雖然增加分割槽數可以提供kafka叢集的吞吐量,但是過多的分割槽數或者是單臺伺服器上的分割槽數過多,會增加不可用及延遲的風險。因為過多的分割槽數,意味著需要開啟更多的檔案控制代碼、增加點到點的延時、增加客戶端的記憶體消耗。 分割槽數也限制了consumer的並行度,即限制了並行consumer訊息的執行緒數不能大於分割槽數 分割槽數也限制了producer傳送訊息是指定的分割槽,如建立topic時分割槽設定為1,producer傳送訊息時通過自定義的分割槽方法指定分割槽為2或以上的數都會出錯;這種情況可以通過alter --partitions來增加分割槽數
  • replication-factor:副本數,控制訊息儲存在幾個broker上,一般情況下等於broker的個數。 如果沒有在建立時顯式指定或通過API向一個不存在的topic生產訊息時會使用broker(server.properties)中的default.replication.factor配置的數量  

通過Console生產資料到指定的Topic

kafka-console-producer.sh --broker-list Hadoop01:9092 --topic Demo1

Console消費指定Topic上的資料

kafka-console-consumer.sh --zookeeper Hadoop01:2181 --from-beginning --topic Demo1

檢視Topic消費進度

顯示Consumer Group的offset情況,必須引數為--group,不指定--topic,預設為所有topic

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

增加Topic分割槽數

為Topic Demo1增加11個分割槽

kafka-topics.sh --zookeeper Hadoop01:2181 --alter --topic Demo1 --partitions 11

刪除Topic

注意,只會刪除zookeeper中的元資料,訊息檔案須手動刪除

kafka-topics.sh --delete --zookeeper Hadoop01:2181 --topic Demo1

給指定的Topic增加配置項

增加一個引數設定max message size值為128000

kafka-topics.sh --zookeeper Hadoop01:2181 --alter --topic Demo1 --config max.message.bytes=128000