kafka相关业务必会操作命令整理

参考:https://kafka.apache.org

注意版本区别还是很大的,我们的kafka集群版本目前都强制升级到0.11

2021年:过了一年了,升级到2.2.1了,2.12_2.2.1,查了下跟0.11相比,最大的变化是增加了kafka-stream模块

说明:命令行参数中--zookeeper是2.2以前的版本,2.2之后使用--bootstrap-server

  • 检查端口号
ps -ef | grep kafka 
netstat -tunlp|grep "(2181|9092)"
  • topic相关

1、创建一个topic
> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TEST_TOPIC

2、查看topic列表

> bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Alternatively, instead of manually creating topics you can also configure your brokers to auto-create topics when a non-existent topic is published to.

除了手动创建topic,还可以配置auto-create topics,当一个不存在的topic发布时可自动创建

上述有的版本bootstrap-server要改成zookeeper 2181用

3、查看某个topic信息

> bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic TEST_TOPIC

4、修改某个topic的partition个数(分区只能增不能减)

> bin/kafka-topics.sh --bootstrap-server localhost:2181 --alter --topic TEST_TOPIC --partitions 10

5、删除某个topic(只会删除zookeeper内的元数据,消息文件需要手动删除)

如果启动时server.properties没有配置delete.topic.enable=true,此时删除只是把topic标记为:marked for deletion,日志数据(log.dirs配置的位置)并未删除

> bin/kafka-topics.sh --bootstrap-server localhost:2181  --topic TEST_TOPIC --delete
  • producer相关

一般用来做测试,命令行和文件都支持

> bin/kafka-console-producer --broker-list localhost:9092 --topic test
This is a message 哈哈哈哈哈哈哈

预研测试的时候经常读文件更方便:

cat data001.txt |  kafka-console-producer --broker-list localhost:9092 --topic test_data001 | > out001.txt

附:wc -l data.txt查看文件行数

  • consumer相关

1、查看所有消费者组

> bin/kafka-consumer-groups --bootstrap-server localhost:9092 --list

2、查看指定group(group01)的消费情况

> bin/kafka-consumer-groups --describe --group group01 --bootstrap-server localhost:9092
  • console相关

1、生产数据

> bin/kafka-console-producer --broker-list localhost:9092 --topic TEST_TOPIC

2、消费数据

> bin/kafka-console-consumer --bootstrap-server localhost:9092 --from-beginning --topic TEST_TOPIC
  • 其他

1、重置指定topic的offset

背景,因为程序写的不够好,辛苦造了2亿多数据跑入库测性能,跑到中间数据库服务器撑爆了,结果都写进日志了。。。

> bin/kafka-consumer-groups --bootstrap-server localhost:9092 --group group_test --reset-offsets -to-offset 97000000 --topic TEST_TOPIC --execute

Other supported arguments:

--shift-by [positive or negative integer] - Shifts offset forward or backward from given integer.往前或往后加减offset

--to-current and --to-latest are same as --to-offset [integer] and --to-earliest.

--to-datetime [Datetime format is yyyy-MM-ddTHH:mm:ss.xxx]

 > bin/kafka-consumer-groups --bootstrap-server localhost:9092 --group group_test --reset-offsets --to-datetime 2017-08-04T00:00:00.000 [ --all-topics or --topic <topic-name> ] --execute

how to validata:

> bin/kafka-consumer-groups --bootstrap-server locahost:9092 --group <group_id> --describe

注意:这里重置的offset是针对每个partition而言,重置offset之前,所有的consumer必须是inactive的,也就是应用消费必须暂停

posted @ 2019-11-12 12:36  鼠标的博客  阅读(526)  评论(0编辑  收藏  举报