kafka数据分区不足删除操作

有时候由于特定的业务需要,我们的kafka分区的磁盘可能不够,这个时候我们需要自身删除磁盘数据或者使用脚本定时检测删除消费完的磁盘数据。但是有一个重要的点是:我们需要使用同一个topic主题,所以在删除数据之后我们需要重置这些主题的offset。
image.png
我们以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

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强...

85 声望
21 粉丝
0 条评论
推荐阅读
ChatGPT教程
ChatGPT 菜鸟教程飞书链接:ChatGPT 菜鸟教程适用人群:关注 ChatGPT 相关产品动向,跃跃欲试又不知如何下手的小伙伴首发时间:2023年3月29日本文档专注收集汇总 ChatGPT 相关产品使用教程,持续更新,永久免费在...

startshineye1阅读 692

【Kafka】编译 Kafka2.7 源码并搭建源码环境(Ver 2.7.2)
Kafka 是通过 Scala 和 Java共同编写的语言,之所以选择2.7.2的版本是因为这个版本的Kafka是最后一版本保留ZK的版本。

Xander2阅读 635

spring boot使用Java并行流发送kafka消息报错
我们组有2个业务在 Java并行流中发消息到 其他组的Kafka,一个是 批量管理接口(app接口公用底层方法,不是批量的,没有用 并行流),另一个是 消费我们组Kafka消息然后发送。

javalover阅读 701

聊聊Kafka Reactor线程模型?
三个点,事件驱动、一个或者多个数据源、多路复用事件驱动简单理解 : 场景1 : 比如说小A HR要招聘一个NB的程序员,既要Java基础厉害,又涉及大数据领域(不单单只会皮毛的)的人,突然小A在xxx招聘网站看到了一个小...

journey4阅读 319

跨数据中心下的 Kafka 高可用架构分析
本文介绍了 Kafka 跨数据中心的两种部署方式,简要分析两种方式下的不同架构以及优缺点,对这些架构可能碰到的问题也提供了一些解决思路;同时也说明了 Kafka 跨数据中心部署的社区解决方案和商业化解决方案。

腾讯云中间件阅读 625

Docker-compse 关键字解释
添加环境变量。您可以使用数组或字典。任何布尔值(true、false、yes、no)都需要用引号括起来,以确保它们不会被 YML 解析器转换为 True 或 False。一般 arg 标签的变量仅用在构建过程中。而environment和 Docke...

Architecture阅读 531

三天吃透Kafka面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

程序员大彬阅读 461

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强...

85 声望
21 粉丝
宣传栏