kafka清理数据

article/2025/9/6 1:14:08

由于项目原因,最近经常碰到Kafka消息队列拥堵的情况。碰到这种情况为了不影响在线系统的正常使用,需要大家手动的清理Kafka Log。但是清理Kafka Log又不能单纯的去删除中间环节产生的日志,中间关联的很多东西需要手动同时去清理,否则可能会导致删除后客户端无法消费的情况。

  在介绍手动删除操作之前,先简单的介绍一下Kafka消费Offset原理。

一、Kafka消费Offset

 

 在通过Client端消费Kafka中的消息时,消费的消息会同时在Zookeeper和Kafka Log中保存,如上图红线所示。

     当手动删除Kafka某一分片上的消息日志时,如上图蓝线所示,此是只是将Kafka Log中的信息清0了,但是Zookeeper中的Partition和Offset数据依然会记录。当重新启动Kafka后,我们会发现如下二种情况:

     A、客户端无法正常用消费;

     B、在使用Kafka Consumer Offset  Monitor工具进行Kafka监控时会发现Lag(还有多少消息数未读取(Lag=logSize-Offset))为负数;其中此种情况的删除操作需要我们重点关注,后面我们也会详细介绍其对应的操作步骤。

   一般正常情况,如果想让Kafka客户端正常消费,那么需要Zookeeper和Kafka Log中的记录保持如上图黄色所示。

  Kafka具体消费原理可以参见:http://blog.xiaoxiaomo.com/2016/05/14/Kafka-Consumer%E6%B6%88%E8%B4%B9%E8%80%85/

二、Kafka消息日志清除

   操作步骤主要包括:

     1、停止Kafka运行;

     2、删除Kafka消息日志;

     3、修改ZK的偏移量;

     4、重启Kafka;

 上述步骤重点介绍其中的关键步骤。

 在进行第2步:删除Kafka消息日志时,进入Kafka消息日志路径下,使用du -sh * 检查磁盘占用比较大的目录,然后删除此目录;

 在进行第3步:修改ZK的偏移量时,进入ZK的安装目录下,运行./zkCli.sh -server (中间以,分割),如果不带server默认修改的为本机。

 示例如下:

     A.运行./zkCli.sh -server AAA:2181,BBB:2181,CCC:2181

     B.在ZK上运行ls /consumers/对应的分组/offset/对应的topic,就可以看到此topic下的所有分区了;

      通过get /consumers/对应的分组/offset/对应的topic/对应的分区号,可以查询到该分区上记录的offset;

      通过set /consumers/对应的分组/offset/对应的topic/对应的分区号 修改后的值(一般为0),即可完成对offset的修改;

 三、重建Topic

    操作步骤主要包括如下:

      1、删除Topic;

      2、删除log日志;

      3、删除ZK中的Topic记录

第一步:删除Topic
 运行./kafka-topics.sh -delete -zookeeper [zookeeper server] -topic [topic name];如果kafka启动时加载的配置文件server.properties没有配置delete.topic.enable = true,那么此时的删除并不是真正的删除。而只是把topic标记为:marked for deletion,此时就需要执行第3步的操作;
第三步:删除ZK中的Topic记录
  示例如下:

     A.运行./zkCli.sh -server AAA:2181,BBB:2181,CCC:2181

     B.进入/admin/delete_topics目录下,找到删除的topic,删除对应的信息。

四、常用命令

A.查看Kafka中的消息

./kafka-run-class.sh kafka.tools.DumpLogSegments -print-data-log -files /data01/middle/kafka-logs/00000002154.log >>aa.txt
find /dataa01 -mtime 0 -name *.log |xargs /kafka-run-class.sh kafka.tools.DumpLogSegments -print-data-log -files /data01/middle/kafka-logs/00000002154.log >>aa.txt

0代表当天;-1代表昨天


http://chatgpt.dhexx.cn/article/OODtdJXO.shtml

相关文章

Kafka数据清理

目录 kafka数据清理日志删除(Log Deletion)1. 基于时间的保留策略2. 基于日志大小的保留策略3. 基于日志起始偏移量保留策略 日志压缩(Log Compaction) 原文地址:https://program-park.github.io/2021/09/18/kafka_11/…

mysql数据库要定期清除吗_数据库mysql定时清除数据

数据库mysql定时清除数据 数据库mysql定时清除数据 https://www.jiangweishan.com/article/2384238490809808.html 作者:andy0012019.11.22来源:Web前端之家浏览:2081评论:0 关键词:jsmysql 一个项目如果规划不合理,每…

SDN是什么,与传统分布式网络有什么区别

传统的的分布式网络 分布式网络也叫网状网络,它是由分布在不同地点的计算机系统互连而成,网中无中心节点。通信子网是封闭式结构,通信控制功能分布在各节点上。 分布式网络的特点是:可靠性高;网内节点共享资源容易&am…

软件定义网络(SDN)

SDN基本概述 参考文章:SDN基本概述、解读SDN的东西、南北向接口 传统网络数据控制与转发 传统网络是分布式控制的架构,每台设备都包含独立的控制平面,数据平面。 传统网络是分布式控制的架构: 这里的分布式控制指在传统IP网络…

sdn通俗介绍

拼客学院服务号 前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想。只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这…

SDN — Google B4 SDN WAN 网络架构

目录 文章目录 目录Google B4 SDN WAN 网络B4 网络架构物理设备层局部网络控制层全局控制层Google B4 SDN WAN 网络 Google 的 WAN 有 2 张网络(Two Backbones): B2(Internet-facing WAN,I-Scale Network):数据中心互联 Internet(POP)的网络,用于面向 Internet 用户…

SDN基础理解

1. 何为SDN 1) 为什么需要一个全新的网络架构,比如SDN? 在传统的架构中,交换机和路由器不得不在操作6000种分布式协议的控制下实施整个网络的智能。这就意味着,即使只有一个网元增加了一种新的协议,也需要所有其他网元…

SDN概述

SDN概述1 SDN是什么 ONRC是 SDN创始人斯坦福大学教授Nick McKeown和加州大学伯克利分校教授 Scott Shenker,以 Larry Peterson教授 共同创建的研究架构。ONRC对SDN的定义是:“SDN是一种逻辑集中控制的新网络架构,其关键属性包括&#xff1a…

SDN网络架构简述

SDN的特点之一就是控制平面与数据平面分离,其主张通过集中式的控制器平台实现网络的控制。在SDN架构中,控制平面是逻辑集中的,通过某种协议将控制信息下发至底层的数据平面去执行。所以,控制平面被称为SDN的大脑,指挥整…

什么是SDN

为什么要推出SDN? SDN的起源 • SDN ( Software Defined Networking )即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。 真核心理念通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中 控制&…

SDN概述,SDN是什么?

软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二。2012年7月,SDN代表厂商Nicira被 VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC网络中部署SDN,这促使SDN引起…

SDN网络概述

SDN是一种存在逻辑上集中控制的新型网络结构,其主要特征是数据平面与控制平面分离。数据平面与控制平面之间通过标准的开放接口OpenFlow实现信息交互。 一、SDN的主要内容 SDN在数据平面、控制平面、应用平面的研究内容主要涉及以下方面: 1&#xff0…

SDN基本概念

文章目录 SDN基本概念SDN的概念与体系结构背景传统网络数据控制与转发传统网络结构体系传统网络缺点 SDN概述SDN网络体系架构SDN架构下的接口SDN基本原理OpenFlow的思想和功能OpenFLow网络交换模型 SDN价值网络业务快速创新简化网络网络设备白牌化业务自动化网络路径流量优化 传…

SDN技术概述

1.SDN架构定义 软件定义网络(Software Defined Networking,SDN)是一种数据平面与控制分离、软件可编程的新型网络体系架构,开放网络基金会(Open Network Foundation,ONF)作为目前SDN最重…

SDN基本概述

SDN的概念与体系结构 传统网络数据控制与转发: 传统网络是分布式控制的架构,每台设备都包含独立的控制平面,数据平面。 传统网络是分布式控制的架构: 这里的分布式控制指在传统IP网络中,用于协议计算的控制平面和报…

【网络】初识SDN架构

什么是SDN 1.定义 (1)ONRC: SDN 是一种逻辑集中控制的新网络架构,其关键属性包括:数据平面和控制平面分离;控制平面和数据平面之间有统一的开放接口OpenFlow。 > 强调数控分离和集中控制等表现形式 (2…

(一)SDN基本架构

1.SDN架构 SDN是一种数据控制分离、软件可编程的新型网络体系架构,其基本架构如 下图1所示。SDN采用了集中式的控制平面和分布式的转发平面,两个平面相互分离,控制平面利用控制——转发通信接口对转发平面上的网络设备进行集中式控制。 图1…

SDN介绍(什么是SDN)

SDN介绍 一. 什么是SDN?二.SDN解决什么问题?三.传统网络概念和结构体系传统网络数据控制与转发:传统网络架构: 四.SDN概述SDN(Software Defined Network)软件定义网络。…

SDN基本架构

SDN采用了如图1-7所示的基本架构,集中式的控制平面和分布式的转发平面相互分离,控制平面利用控制器、转发通信接口对转发平面上的网络设备进行集中式的管理。 图1-1 SDN架构​​​​ ① 基础设施层(Infrastructure Layer)&#x…

SDN(软件定义网络)详解

目录 一 传统网络体系结构1 传统网络是分布式控制的架构2 传统网络结构体系3 传统网络局限性 二 SDN概述1 SDN的三个主要特征2 SDN控制器既不是网管,也不是规划工具 三 SDN网络体系架构1 SDN网络体系架构的三层模型:2 SDN架构下的接口 三 SDN基本工作原理…