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