Kafka bin目录下各个脚本的用法

时间:2022-11-22 19:55:48

kafka/bin/目录下文件结构如下:

Kafka bin目录下各个脚本的用法

kafka-console-consumer.sh

作用:通过控制台订阅并接收消息。

使用:

#订阅主题topic-demo,并处于等待消息的状态

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo

kafka-console-producer.sh

作用:通过控制台发送消息。

使用:

#打开生产者终端,在窗口光标闪动时,可发送消息

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

kafka-server-start.sh

作用:启动Kafka服务。

使用:

#控制台启动Kafka服务(不建议该方式。因为如果关闭控制台,则服务会停止)

bin/kafka-server-start.sh config/server.properties

#后台启动Kafka服务

bin/kafka-server-start.sh -daemon config/server.properties

#后台启动Kafka服务

bin/kafka-server-start.sh config/server.properties &

kafka-topics.sh

作用:管理主题。包括创建主题、查看主题信息、修改主题和删除主题等操作。该脚本有5种指令类型:create、list、describe、alter、delete。

使用:

#创建主题

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-demo --partitions 4 --replication-factor 2

#查看当前所有可用的主题

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

#查看单个主题的详细信息,包括分区和副本的分配细节

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

#如果不使用--topic指定主题,则会展示出所有主题的详细信息

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

#增加主题的分区数(目前kafka不支持减少分区数)

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

#修改主题的配置,覆盖原配置

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-demo --config max.message.bytes=20000

#删除主题

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

kafka-configs.sh

作用:专门用于修改配置。不仅支持操作主题相关的配置,还支持操作broker、用户和客户端这3个类型的配置。该脚本包含 alter 和 describe 这两种指令类型。

使用:

#查看主题详细信息

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

#增加配置(使用alter指令变更配置时,需要配合add-config和delete-config一起使用)

bin/kafka-configs.sh --zookeeper localhost:2181/kafka --alter --entity-type topics --entity-name topic-demo --add-config cleanup.policy=compact,max.message.bytes=10000

#删除配置

bin/kafka-configs.sh --zookeeper localhost:2181/kafka --alter --entity-type topics --entity-name topic-demo --delete-config cleanup.policy,max.message.bytes

kafka-reassign-partitions.sh

作用:分区重分配。该脚本可以在集群扩容、broker节点失效的场景下对分区进行迁移。

使用:

 分三步:

(1)创建一个包含主题清单的JSON文件;

(2)根据主题清单和broker节点清单生成一份重分配方案;

(3)根据这份方案执行具体的重分配动作。