Kafka日志及Topic数据清理 - moonandstar08 - 博客园

标签: | 发表时间:2020-06-14 22:27 | 作者:
出处:https://www.cnblogs.com

  由于项目原因,最近经常碰到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代表昨天

相关 [kafka 日志 topic] 推荐:

Kafka日志及Topic数据清理 - moonandstar08 - 博客园

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

Kafka Shell基本命令(包括topic的增删改查) - XIAO的博客 - 博客园

- -
创建kafka topic. 控制台向topic生产数据. 控制台消费topic的数据. 查看topic某分区偏移量最大(小)值. 删除topic,慎用,只会删除zookeeper中的元数据,消息文件须手动删除. 注:partitions指定topic分区数,replication-factor指定topic每个分区的副本数.

日志实时收集之FileBeat+Kafka

- - lxw的大数据田地
之前,我们的某一个业务用于实时日志收集处理的架构大概是这样的:. 在日志的产生端(LogServer服务器),都部署了FlumeAgent,实时监控产生的日志,然后发送至Kafka. 经过观察,每一个FlumeAgent都占用了较大的系统资源(至少会占用一颗CPU 50%以上的资源). 而另外一个业务,LogServer压力大,CPU资源尤其紧张,如果要实时收集分析日志,那么就需要一个更轻量级、占用资源更少的日志收集框架,于是我试用了一下Filebeat.

开源日志系统简介——Scribe,flume,kafka,Chukwa

- - 互联网 - ITeye博客
许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:. (1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;. (2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;. 即:当数据量增加时,可以通过增加节点进行水平扩展.

Flume + kafka + HDFS构建日志采集系统

- - 企业架构 - ITeye博客
    Flume是一个非常优秀日志采集组件,类似于logstash,我们通常将Flume作为agent部署在application server上,用于收集本地的日志文件,并将日志转存到HDFS、kafka等数据平台中;关于Flume的原理和特性,我们稍后详解,本文只简述如何构建使用Flume + kafka + HDFS构建一套日志采集系统.

使用Flume+Kafka+SparkStreaming进行实时日志分析

- - CSDN博客推荐文章
每个公司想要进行数据分析或数据挖掘,收集日志、ETL都是第一步的,今天就讲一下如何实时地(准实时,每分钟分析一次)收集日志,处理日志,把处理后的记录存入Hive中,并附上完整实战代码. 思考一下,正常情况下我们会如何收集并分析日志呢. 首先,业务日志会通过Nginx(或者其他方式,我们是使用Nginx写入日志)每分钟写入到磁盘中,现在我们想要使用Spark分析日志,就需要先将磁盘中的文件上传到HDFS上,然后Spark处理,最后存入Hive表中,如图所示:.

日志收集:ETL,ELK以及Kafka/Redis - S.Mona

- -
其实一直都想写ELK的,毕竟在公司做了一年的日志ETL的工作,而且经历了上个世纪遗留的日志收集方案到现在流行的日志收集方案的变更,但是一直都没有找到合适的时间和机会写这一篇文章,趁着寒冬需求量下降没有那么忙碌就做了. ELK是Elastic公司的产品,elastic公司最远近闻名的就是他的ElasticSearch,这也是ELK中的’E’,其他’L’和’K’,分别是指Logstash以及Kibana.

SpringBoot+Kafka+ELK 完成海量日志收集(超详细)

- - 掘金 架构
来源:jiandansuifeng.blog.csdn.net/article/details/107361190. 在这先列出各服务器节点,方便同学们在下文中对照节点查看相应内容. SpringBoot项目准备. 引入log4j2替换SpringBoot默认log,demo项目结构如下:. 测试Controller,用以打印日志进行调试.

Kafka实战-实时日志统计流程 - 哥不是小萝莉

- - 博客园_首页
  在《 Kafka实战-简单示例》一文中给大家介绍来Kafka的简单示例,演示了如何编写Kafka的代码去生产数据和消费数据,今天给大家介绍如何去整合一个完整的项目,本篇博客我打算为大家介绍Flume+Kafka+Storm的实时日志统计,由于涉及的内容较多,这里先给大家梳理一个项目的运用这些技术的流程.

使用Flume+Kafka+SparkStreaming进行实时日志分析 - Trigl的博客 - CSDN博客

- -