kafka 常用命令行操作(查看主题,生产数据,消费数据)

Posted 健康平安的活着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka 常用命令行操作(查看主题,生产数据,消费数据)相关的知识,希望对你有一定的参考价值。

一 topic相关操作

1.1 查看 主题命令参数

[root@localhost kafka_2.12-2.1.0]#  bin/kafka-topics.sh

1.2 查看集群中所有topic主题

[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh  --list --zookeeper 192.168.152.138
kafka_test
[root@localhost kafka_2.12-2.1.0]# 

1.3 创建主题

[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --create --zookeeper 192.168.152.138:2181 --replication-factor 2 --partitions 3 --topic kafka_test
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic "kafka_test".

1.4 查看主题描述

[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --describe --zookeeper 192.168.152.140:2181 --topic kafka_test
Topic:kafka_test    PartitionCount:3    ReplicationFactor:2    Configs:
    Topic: kafka_test    Partition: 0    Leader: 1    Replicas: 1,2    Isr: 2,1
    Topic: kafka_test    Partition: 1    Leader: 2    Replicas: 2,0    Isr: 2,0
    Topic: kafka_test    Partition: 2    Leader: 0    Replicas: 0,1    Isr: 1,0

解释:

第一行给出了所有分区的摘要。后面以下每一行给出一个partition中的信息,如果我们只有一个partition,则只显示一行。这里有3个分区,显示3行分区的详情信息。

leader 是在给出的所有partitons中负责读写的节点(borker的id),每个节点都有可能成为leader

replicas 显示给定partiton所有副本所存储节点的节点列表(broker的id列表),不管该节点是否是leader或者是否存活。  

isr 副本都已同步的的节点集合,这个集合中的所有节点都是存活状态,并且跟leader同步。

举例:

    Topic: kafka_test    Partition: 0    Leader: 1    Replicas: 1,2    Isr: 2,1
    Topic: kafka_test    Partition: 1    Leader: 2    Replicas: 2,0    Isr: 2,0
    Topic: kafka_test    Partition: 2    Leader: 0    Replicas: 0,1    Isr: 1,0

测试Kafka集群一共三个节点,第一行这个主题“kafka_test" 的编号为0的分区,leader(分区为0的的主分区)在borker的id为1的这个节点上,副本在borker的id为1,2的这两个节点上,并且所有副本都是存活的,并跟主节点broker.id=1这个节点进行同步。

leader:理解为分区 的主分区,replicas为分区的副本

leader,replicas后面的数字为borker的id值,节点的编号

 1.5 生产者

[root@localhost kafka_2.12-2.1.0]# bin/kafka-console-producer.sh --broker-list 192.168.152.136:9092,192.168.152.140:9092,192.168.152.138:9092 --topic kafka_test
>nihao changqingteng!
>Kafka是由Apache软件基金会开发的一个开源流处理平台
>

1.6 消费者 

[root@localhost kafka_2.12-2.1.0]# bin/kafka-console-consumer.sh --from-beginning --topic kafka_test  --bootstrap-server  192.168.152.136:9092,192.168.152.138:9092,192.168.152.140:9092
nihao changqingteng!
Kafka是由Apache软件基金会开发的一个开源流处理平台
 

 1.7 修改主题

(注意:分区数只能增加,不能减少)

[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --zookeeper 192.168.152.126:2181 --alter --topic kafka_test --partitions 5
^C[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --zookeeper 192.168.152.136:2181 --alter --topic kafka_test --partitions 5
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!
[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --describe --zookeeper 192.168.152.140:2181 --topic kafka_test

Topic:kafka_test    PartitionCount:5    ReplicationFactor:2    Configs:
    Topic: kafka_test    Partition: 0    Leader: 1    Replicas: 1,2    Isr: 2,1
    Topic: kafka_test    Partition: 1    Leader: 2    Replicas: 2,0    Isr: 2,0
    Topic: kafka_test    Partition: 2    Leader: 0    Replicas: 0,1    Isr: 1,0
    Topic: kafka_test    Partition: 3    Leader: 1    Replicas: 1,2    Isr: 1,2
    Topic: kafka_test    Partition: 4    Leader: 2    Replicas: 2,0    Isr: 2,0
[root@localhost kafka_2.12-2.1.0]# 
 

  1.8 删除主题

[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh --zookeeper 192.168.152.136:2181 --delete --topic kafka_test
Topic kafka_test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.sh  --list --zookeeper 192.168.152.138

__consumer_offsets
[root@localhost kafka_2.12-2.1.0]#  

可以看到删除topic后,进行查看,查看不到了!
 

以上是关于kafka 常用命令行操作(查看主题,生产数据,消费数据)的主要内容,如果未能解决你的问题,请参考以下文章

kafka常用命令,启动/停止/查看主题列表/消费/生产

kafka常用命令,启动/停止/查看主题列表/消费/生产

kafka常用的shell命令

kafka常用命令大全

kafka常用命令

Java程序创建Kafka Topic,以及数据生产消费,常用的命令