有时候由于特定的业务需要,我们的kafka分区的磁盘可能不够,这个时候我们需要自身删除磁盘数据或者使用脚本定时检测删除消费完的磁盘数据。但是有一个重要的点是:我们需要使用同一个topic主题,所以在删除数据之后我们需要重置这些主题的offset。
我们以kafka容器集群部署方式为例。
查看分区使用主题大小
1.进入kafka集群docker机器
docker exec -it kafka bash;
2.进入数据目录下:
有时候我们的磁盘是挂载到本地磁盘的,所以我们也可以在本地磁盘查看
cd /kafka/kafka-logs-kafka1
3.查看topic对应文件大小:
du -sh *;
出现:
532G test-1
532G test-6
所以我们的test主题的数据量比较大。
4.然后停止服务,让对应的topic数据消费完毕
我们在我们的kafka-manager上进行操作:删除主题,在重新创建主题,设置分区。
5.重置消费group的偏移量lag
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.100.11:9092 --group process-group-news --topic test --to-earliest --reset-offsets --execute
6.查看某个kafka消费组的分区offset情况
./kafka-consumer-groups.sh --bootstrap-server 192.168.100.11:9092 --describe --group process-group-news
7.查看数据总量
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.100.11:9092 --topic test --time -1
8.删除主题
./bin/kafka-topics.sh --delete --topic test --bootstrap-server 192.168.100.11:9092
9.删除消费组
./bin/kafka-consumer-groups.sh --bootstrap-server 192.168.100.11:9092 --describe --group process-group-news
10.获取1条数据
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.100.11:9092 --from-beginning --topic test --max-messages 1;
常见kafka操作
1、进入kafka的终端输入数据
追加文件写入
bin/kafka-console-producer.sh --broker-list 172.21.81.214:9092 --topic Quick_Access_data_out_auto < /kafkatest.json
其中kafkatest.json是需要写入的数据文件。
单纯打开kafka的终端
bin/kafka-console-producer.sh --broker-list 172.21.81.214:9092 --topic Quick_Access_data_out_auto
或者
bin/kafka-console-producer.sh --bootstrap-server 172.21.81.214:9092 --topic Quick_Access_data_out_auto
注意:在某些高版本的kafka下 服务器列表指令是:--bootstrap-server
2、消费数据
bin/kafka-console-consumer.sh --broker-list 172.21.81.214:9092 --topic Quick_Access_data_out_auto
或者
bin/kafka-console-consumer.sh --bootstrap-server 172.21.81.214:9092 --topic Quick_Access_data_out_auto
3、后台启动kafka
bin/kafka-server-start.sh -daemon ./config/server.properties
4、创建topic
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic Quick_Access_data_out_auto --partitions 1 --replication-factor 1
5、查看kafka topic列表
使用--list参数
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。