Kafka常用命令

Kafka 命令行常用操作总结

Kafka常用命令

注意:--bootstrap-server参数后应该跟多个 broker 节点地址,下面是为了写的方便所以只跟了一个 kafka broker 地址,跟多个 broker 节点地址,之间用英文逗号分隔,如下示例

1
--bootstrap-server hadoop102:9092,hadoop103:9092

主题(topic)命令行操作

查看相关参数

1
[root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh

常用参数汇总

参数描述
–bootstrap-server <String: server toconnect to>连接的 Kafka Broker 主机名称和端口号
–topic <String: topic>操作的 topic 名称
–create创建主题
–delete删除主题
–alter修改主题
–list查看所有主题
–describe查看主题详细描述
–partitions <Integer: # of partitions>设置分区数
–replication-factor <Integer: replication factor>设置分区副本
–config <String: name=value>更新系统默认的配置

增删改查操作

  1. 「增」创建一个名为 first 的 topic

    这个命令可以拆开来看:

    • bin/kafka-topics.sh --bootstrap-server hadoop102:9092:这是起手式,起码得能连接上broker,才能进行后续操作
    • --topic first:表示,要对一个叫 first 的 topic 进行操作
    • --create:进行什么操作呢?这里就告诉它我们要进行创建操作
    • --partitions 1 --replication-factor 3:既然是创建了,就得设置 topic 的相关参数了,需要设置 分区数和分区副本数
    1
    bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --create --partitions 1 --replication-factor 3
  2. 「查」查看所有 topic

    1
    2
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list
    first
  3. 「查」查看 first 主题详情信息

    1
    2
    3
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe
    Topic: first TopicId: kS4JYL_oTJeiehAIrtNrtg PartitionCount: 1 ReplicationFactor: 3 Configs: segment.bytes=1073741824
    Topic: first Partition: 0 Leader: 103 Replicas: 103,104,102 Isr: 103,104,102
  4. 「改」修改分区数,注意,分区数只能增加不能减少

    1
    2
    3
    4
    5
    6
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --alter --partitions 3
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe
    Topic: first TopicId: kS4JYL_oTJeiehAIrtNrtg PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
    Topic: first Partition: 0 Leader: 103 Replicas: 103,104,102 Isr: 103,104,102
    Topic: first Partition: 1 Leader: 104 Replicas: 104,103,102 Isr: 104,103,102
    Topic: first Partition: 2 Leader: 102 Replicas: 102,104,103 Isr: 102,104,103
  5. 「删」删除 first 主题,list 查询为空,已经成功删除!

    1
    2
    3
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --delete
    [root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --list

生产者(producer)命令行操作

查看相关参数

1
[root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-console-producer.sh

常用参数汇总

参数描述
–bootstrap-server <String: server toconnect to>连接的 Kafka Broker 主机名称和端口号
–topic <String: topic>操作的 topic 名称

发送消息

1
bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first

消费者(consumer)命令行操作

查看相关参数

1
[root@hadoop103 kafka_2.12-3.0.0]# bin/kafka-console-consumer.sh

常用参数汇总

参数描述
–bootstrap-server <String: server toconnect to>连接的 Kafka Broker 主机名称和端口号
–topic <String: topic>操作的 topic 名称
–from-beginning从头开始消费
–group <String: consumer group id>指定消费者组名称

消费消息

  1. 增量消费(从开启消费之后,生产者再发送才会消费到)

    1
    2
    [root@hadoop103 kafka_2.12-3.0.0]# bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092,hadoop103:9092 --topic first
    heihei
  2. 全量消费(读取 topic 所有的数据,包括历史数据)

    1
    2
    3
    [root@hadoop103 kafka_2.12-3.0.0]# bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092,hadoop103:9092 --topic first --from-beginning
    hello
    heihei