Kafka常用命令簡介

常用的幾個命令如下:

  • kafka-server-start.sh
  • kafka-console-consumer.sh
  • kafka-console-producer.sh
  • kafka-topics.sh

在這幾個命令中,第一個僅用於啓動Kafka,後兩個console常用於測試,用途最多的是最後一個命令,所以下面命令中主要介紹的就是 kafka-topics.sh。

 

kafka-server-start.sh

用法:

> bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]*

這個命令後面可以有多個參數,第一個是可選參數,該參數可以讓當前命令以後臺服務方式執行,第二個必須是 Kafka 的配置文件。後面還可以有多個--override開頭的參數,其中的property可以是Broker Configs中提供的所有參數。這些額外的參數會覆蓋配置文件中的設置。

例如下面使用同一個配置文件,通過參數覆蓋啓動多個Broker。

> bin/kafka-server-start.sh -daemon config/server.properties --override broker.id=0 --override log.dirs=/tmp/kafka-logs-1 --override listeners=PLAINTEXT://:9092 --override advertised.listeners=PLAINTEXT://192.168.16.150:9092

> bin/kafka-server-start.sh -daemon config/server.properties --override broker.id=1 --override log.dirs=/tmp/kafka-logs-2 --override listeners=PLAINTEXT://:9093 --override advertised.listeners=PLAINTEXT://192.168.16.150:9093

上面這種用法只是用於演示,真正要啓動多個Broker 應該針對不同的 Broker 創建相應的 server.properties 配置。

 

kafka-console-consumer.sh

這個命令只是簡單的將消息輸出到標準輸出中,--bootstrap-server 必須指定,通常--topic也要指定查看的主題。如果想要從頭查看消息,還可以指定--from-beginning參數。一般使用的命令如下。

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

還可以通過下面的命令指定分區查看:

>> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --partition 0

 

kafka-console-producer.sh

這個命令可以將文件或標準輸入的內容發送到Kafka集羣。有許多參數,其中 --broker-list 和 --topic 是兩個必須提供的參數。

常用命令如下。

使用標準輸入方式。

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

從文件讀取:

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test < file-input.txt

kafka-topics.sh

相比上面幾個偶爾使用的命令來說,kafka-topics.sh 相對就比較重要。該命令包含以下參數。

下面是幾種常用的 topic 命令。

描述主題的配置

bin/kafka-configs.sh --zookeeper localhost:2181 --describe --entity-type topics --entity-name test_topic

設置保留時間

# Deprecated way
bin/kafka-topics.sh  --zookeeper localhost:2181 --alter --topic test_topic --config retention.ms=1000

# Modern way
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --entity-name test_topic --add-config retention.ms=1000

如果您需要刪除主題中的所有消息,則可以利用保留時間。首先將保留時間設置爲非常低(1000 ms),等待幾秒鐘,然後將保留時間恢復爲上一個值。

注意:默認保留時間爲24小時(86400000毫秒)。

刪除主題

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test_topic

注意:需要在Broker的配置文件server.properties中配置 delete.topic.enable=true 才能刪除主題。 

主題信息

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test_topic

添加分區

bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic test_topic --partitions 3

創建主題

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic test_topic

列出主題

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章