前言

鉴于kafka是中间件,而且它提供了一些shell命令来让我们使用。那么我就来介绍下kafka的各个命令是做什么的,常用操作有哪些。

正文

命令

进入kafka的安装目录,进到bin目录下,我们发现它有很多二进制命令。常用的有以下几类:

1 管理zookeeper的脚本

zookeeper-server-start.sh

zookeeper-server-stop.sh

zookeeper-shell.sh

 

2 管理kafka服务的脚本

kafka-server-start.sh

kafka-server-stop.sh

 

3 管理kafka各topic的脚本

kafka-topics.sh

 

4 管理生产者、消费者情况的脚本

kafka-console-producer.sh

kafka-console-consumer.sh

kafka-consumer-groups.sh

 
还有很多,但是我就不是很熟了。所以我会针对以上几类做出使用样例来。

 
 

使用场景

  1. 启动zk和kafka。鉴于启动kafka的前提是启动zk,所以我们需要先启动zk,后启动kafka。

    nohup sh zookeeper-server-start.sh ../config/zookeeper.properties > /var/log/zookeeper.log & 
    
    nohup sh kafka-server-start.sh ../config/server.properties > /var/log/kafka.log & 
    

    二者用的都是后台启动,通过指定特定的配置文件进行启动,且都将日志输出到了/var/log/下的日志文件中。

  2. 创建、删除topic

    #创建topic
    sh kafka-topics.sh --zookeeper localhost:2181 --create --topic test_topic --partitions 30  --replication-factor 2
    
    #删除topic
    sh bin.kafka-topics.sh --zookeeper localhost:2181 --delete --topic test_topic
    
  3. 查看所有topic信息

    sh kafka-topics.sh --zookeeper localhost:2181 --list
    
  4. 查看特定topic信息

    sh kafka-topics.sh --zookeeper localhost:2181 --topic test_topic
    
  5. kafka查看consumer group状态

    sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group mygroup --describe
    
  6. 控制台消费topic的数据

    sh kafka-console-consumer.sh --zookeeper localhost:2181  --topic test_topic --from-beginning
    
  7. 控制台想topic生产数据

    sh kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
    
  8. kafka清除分区的offset

    sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_topic --reset-offsets --all-topics --to-latest --execute
    
    ##清理kafka分区的offset的前提是无应用占用此分区,否则会有下面的报错
    Error: Assignments can only be reset if the group 'real_time_product_group' is inactive, but the current state is Stable.
    
    
posted on 2020-05-28 16:09  eryoung2  阅读(489)  评论(0编辑  收藏  举报