Resetting first dirty offset of __consumer_offsets

RGB接口电容触摸屏驱动(一)模块介绍 阅读详情

每一个分区都是一个顺序的、不可变的消息队列,并且可以持续的添加。分区中的消息都被分配了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的。
一个分区在文件系统里存储为一个文件夹。文件夹里包含日志文件和索引文件。其文件名是其包含的offset的最小的条目的offset。

这里写图片描述

这里写图片描述

每个文件是一个segment。
在broker的log存储文件下,除了存储这各个topic的文件夹,还存在这几个checkpoint文件。分别是

  • recovery-point-offset-checkpoint 负责记录topic已经被写入磁盘的offset。

  • replication-offset-checkpoint 用来存储每一个replica的HighWatermark。由ReplicaManager负责写。参考下面关于HW定义,也就是那些已经成功被复制给其他broker消息的offset。

__consumer_offsets存储各个topic的消费者offset。但是,他的只有一份。

一些常见的offset

在这里插入图片描述

  • HighWatermark 最后committed消息的起始偏移。它后面的消息在目前还是uncommited的状态。

  • logStartOffset 日志段集合中第一个日志段(segment)的基础位移,也就是这个日志对象的基础位移

  • LogEndOffset 下一条将要被加入到日志的消息的位移。注意,这个offset未必在硬盘中,可能目前只在内存中还没有被flush到硬盘。

  • recovery-point-offset-checkpoint 已经被确认写入磁盘的offset

  • replication-offset-checkpoint 已经确认复制给其他replica的offset。也就是HW。

失败的follower开始恢复时,会首先将自己的日志截断到上次的checkpointed时刻的HW。然后,向leader拉去消息。

同时,kafka有日志清理机制,日志清理主要是用于缩减日志的大小,如清理重复的key等等。min.compaction.lag.ms配置不满足的最近segment和activesegment显然是不能清理的。

在这里插入图片描述

FAQ

Resetting first dirty offset of __consumer_offsets
例如,重复报错信息如下,这显然是清理线程在一直遇到麻烦。

[2018-06-01 13:46:27,156] WARN Resetting first dirty offset of __consumer_offsets-18 to log start offset 44 since the checkpointed offset 42 is invalid. (kafka.log.LogCleanerManager$)

val lastCleanOffset: Option[Long] = lastClean.get(topicPartition) // If the log segments are abnormally truncated and hence the checkpointed offset is no longer valid; // reset to the log starting offset and log the error val logStartOffset = log.logSegments.head.baseOffset val firstDirtyOffset = { val offset = lastCleanOffset.getOrElse(logStartOffset) if (offset < logStartOffset) { // don't bother with the warning if compact and delete are enabled. if (!isCompactAndDelete(log)) warn(s"Resetting first dirty offset of ${log.name} to log start offset $logStartOffset since the checkpointed offset $offset is invalid.") logStartOffset } else { offset } }

我们可以看见,清理线程试图获取一个partition的最后清理的位移(lastCleanOffset),并同时获取了该partition中现存的所有segment中最小的头部offset(logStartOffset)。但是,却发现lastCleanOffset比logStartOffset还要小。清理线程自然会反应,那些我没有清理的数据跑哪里去了呢?抱怨完后,其将firstDirtyOffset置为logStartOffset,准备下一次从这里开始清理。报错中令人迷惑的checkpointed offset是指lastCleanOffset。

val dirtyNonActiveSegments = log.logSegments(firstDirtyOffset, log.activeSegment.baseOffset)

kafka本来应该是在完成清理后将lastCleanOffset提高,但是问题在于,如果此时没有可清理的segment,lastCleanOffset也就将保持不变。则线程下一次循环时仍然会遇到这个问题。
解决方案中最快捷的是清空kafka的data目录。或者忽略这个问题,等待大量数据灌入。一旦产生可以清理的segment,这个问题就会解决。

 

 

 

 

开源遥感语义分割工具箱mmsegmentation基于Lovedata数据集训练模型 阅读详情

相关推荐

如何入门强化学习

很多同学在入门强化学习的时候都会遇到困难,那我这里就简单介绍一下应该如何入门强化学习,并以开源代码为例详解强化学习实战。

seeksister的博客 3302

kafka启动报错&问题解决

kafka启动报错&问题解决 一早上班,就收到运维同事通知说有一台物理机宕机,导致虚拟机挂了。只得重启kafka服务器。 1.启动 启动zookeeper bin/zkServer.sh start conf/zoo.cfg & 启动kafka bin/kafka-server-start.sh config/server.properties & 2.测试 问题...

weixin_30612769的博客 1972

URP Shader编程之自定义后处理单pass渲染(URP 14.x)

❌ 不要在里拿✅ 只在里拿RendererFeature 生命周期RTHandle 设计Blitter 的真实语义Shader 输入来源。

qq1342753906的博客 607

kafka的__consumer_offsets 作用

kafka 的consumer里面默认有一个叫做:__consumer_offsets 的topic。 这个topic的作用主要是保存当前topic的消费者的offset。 下面演示一下: 一 :首先使用命令行创建一个kafka producer,topic命名为:test2 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test2 二:之后我们用Java代码写一个kafka consumer程序,当然.

xfjjs_net的博客 1853

别再瞎猜了!三角形接法PMSM的相电流到底怎么算?实测线电流转换公式与避坑指南

本文深入解析三角形接法永磁同步电机(PMSM)在FOC控制中的相电流计算误区,提供实测线电流转换公式与避坑指南。针对矢量控制系统中常见的√3换算错误,详细阐述正确的电流重构算法、硬件采样要点及软件优化技巧,帮助工程师实现精确控制并避免电机损坏。

weixin_30367873的博客 466

直流电动机的建模仿真(1)他励,串励和并励电动机建模仿真

本文根据不同励磁方式的直流电动机的接线原理图,建立了相应的数学模型,然后根据与数学模型对应的等效电路以及模拟机械运动方程的等效电路,用Matlab/simulink中的SpecializedPower system库中的电路元件,建立了他励,并励和串励直流电动机的全等效电路仿真模型,经过与Matlab自带的直流电动机仿真模型比较以及仿真实例验证,所建立的仿真模型时完全正确的。

weixin_45670943的博客 7516

kafka日志存储(八):LogCleanManager日志压缩

日志压缩 在很多实践的场景中,key和value的值是不丹变化的,如果消费者只关心key对应的最新value值,可以开启kafka的日志压缩功能,服务端要在后台启动Cleaner线程池,把相同key的消息进行合并。 每个Log都可以通过clean checkpoint部分切分成clean和dirty两部分,clean表示之前已经被压缩过的消息,dirty表示没有被压缩过的消息。 经过压缩之后,cl...

lianggx3的博客 1028

SGO基线解算软件(南方测绘UI设计最美观的一款新版)

不多说,先放地址: 下载地址:https://www.southgnss.com/download_view.asp?did=361 SGO是南方测绘集团广州南方卫星导航仪器有限公司自主研发新一代南方地理数据处理平台软件,对南方特有数据格式文件(STH格式文件)、标准数据格式文件(RINEX格式文件)进行静态数据处理、动态数据后处理和进行RTK结果检验,新增加了北斗数据处理和摄影测量模块,并围绕南方的不同类型测量产品集成多款测绘领域所需的小工具,实现测绘内业数据处理一体化。 相关概念 G..

heirenqiaoke的博客 1万+

Resetting first dirty offset of __consumer_offsets

刚才老司机让启动下kafka的服务,然后我启动的时候报了个错,就是说那个.log文件正在被使用,因为这个错之前查过了,这里贴下对应的报错信息,因为我的删除了,所以是在网上找的: ERROR Error while deleting the clean shutdown file in dir E:\kafka_2.11-1.0.0\tmp\kafka-logs (kafka.server.L...

weixin_40805079的博客 3941

【25届数字IC秋招总结】面试经验15——比特大陆-算能

25届数字ic面试记录——比特大陆-算能

lalala0635的博客 554

别再只当调包侠了!YOLO检测头到损失函数全链路拆解,看完才算真懂

YOLO的精妙不在于某个单一创新,而在于各模块围绕“实时精准检测”这一目标的协同设计。Backbone追求高效特征压缩,Neck保障多尺度信息流通,Head解耦任务冲突,Loss动态引导优化方向。只有理解这套内在逻辑,才能跳出“调包-试错”的低效循环,在面对新场景、新问题时做出有理有据的改进决策。技术深度决定职业天花板。下次再调YOLO时,不妨先问自己:我改的这个参数,到底影响了系统中的哪一环?参考资料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 185

【kafka】__consumer_offsets部分分区异常导致消费不到数据问题排查

部分消费组无法通过broker(new-consumer)正常消费数据,更改消费组名后恢复正常。

一只皮皮熊 6914

RK3588芯片CAN总线调试秘籍:SocketCAN与错误帧攻略

RK3588芯片在嵌入式领域凭借8nm工艺和强大性能成为核心控制器。本文详细介绍了其CAN总线配置流程,包括硬件连接、内核驱动配置及SocketCAN命令操作,并深入解析了CAN通信中的错误帧机制及分析方法。通过智能工厂案例,展示了从问题定位到解决方案的全过程,强调了稳定通信对工业应用的重要性。文章为RK3588的CAN总线应用提供了实用技术参考,并对未来智能诊断技术在该领域的应用进行了展望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 512

【kafka原理】 消费者偏移量__consumer_offsets_相关解析

我们在kafka的log文件中发现了还有很多以 __consumer_offsets_的文件夹;总共50个; 由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息。 __consumer_offsets 是 kafka 自行创建的,和普通的 topic 相同。它存在的目的之一就

石臻说AI(szzdzhp001) 【原名 石臻臻的杂货铺】 7427

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

nginx mysql gitlab重启方式

nginx重启 nginx -s reload nginx nginx -s stop mariadb版mysql systemctlstartmariadb.service//启动服务 systemctlenablemariadb.service//开机启动服务 gitLab启动 sudo gitlab-ctl start s...

勇往直前 935

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

kafka原理详解之各种offset和checkpoint

每一个分区都是一个顺序的、不可变的消息队列,并且可以持续的添加。分区中的消息都被分配了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的。 一个分区在文件系统里存储为一个文件夹。文件夹里包含日志文件和索引文件。其文件名是其包含的offset的最小的条目的offset。 每个文件是一个segment。 在broker的log存储文件下,除了存储这各个topic的文...

define_us的专栏 6999

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Kafka 日志清理机制——LogCompact(七)

文章目录一. 日志清理是干什么的?二. 清理相关原理三、墓碑消息(tombstone)四、日志segment合并五、清理线程的启动六、通过dirtyRatio获取要清理的partition日志 一. 日志清理是干什么的? kafka的日志清理机制主要用于缩减日志的大小,它并不是指通过压缩算法对日志文件进行压缩,而是对重复的日志进行清理来达到目的。在日志清理过程中,会清理重复的key,最后只会保留最...

u013332124的专栏 1万+

Kafka日志模块(九):LogCleaner(重复日志数据清理compact)

之前介绍了按照时间空间老化消息的定时任务,本篇来看一下 LogCleaner 线程,如果在配置中指定了 log.cleaner.enable=true,那么在 LogManager#startup 方法的最后会调用 LogCleaner#startup 方法启动 LogCleaner 线程对日志数据执行清理工作。本篇针对配置了 cleanup.policy=compact 策略的清理方式,kafka 的 LogCleaner 线程就会对具备相同 key 的消息进行清理操作,仅保留当前具备最大...

lianggx3的博客 2836

清理offset_Kafka的日志清理-LogCleaner

这里说的日志,是指Kafka保存写入消息的文件;Kafka日志清除策略包括中间:基于时间和大小的删除策略;Compact清理策略;我们这里主要介绍基于Compact策略的Log Clean;Compact策略说明Compact就是压缩, 只能针对特定的topic应用此策略,即写入的message都带有Key, 合并相同Key的message, 只留下最新的message;在压缩过程中, 针对mes...

weixin_33365844的博客 1039

Kafka学习(四)——生产者

日志存储 Kafka 中的消息是以主题为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被追加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset),具有4个分区的主题的逻辑结构见下图。 如果分区规则设置得合理,那么所有的消息可以均匀...

hxyascx的博客 263

日志管理系统——日志收集3

这一节介绍的方法主要是用于对Controller层抛出的异常做统一的处理。使用 @ControllerAdvice + @ExceptionHandler 进行全局的 Controller 层异常处理,只要设计得当,就再也不用在 Controller 层进行 try-catch 了。想想就那么嗨皮…… @ControllerAdvice(annotations = Controller.cla...

weixin_40805079的博客 492

用hbase存储offset

Offset Management For Apache Kafka With Apache Spark StreamingJune 21, 2017By Guru Medasani, Jordan Hambleton25 CommentsCategories: CDH Kafka SparkAn ingest pattern that we commonly see being adopted ...

weixin_36630761的博客 1316

Kafka学习整理三(borker(0.9.0及0.10.0)配置)

Kafka学习整理三(borker(0.9.0及0.10.0)配置)

LOUISLIAOXH的专栏 2万+

Kafka 如何读取offset topic内容 (__consumer_offsets)

  众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息。   不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信...

weixin_33716154的博客 292

kafka 的offset的重置

最近在spark读取kafka消息时,每次读取都会从kafka最新的offset读取。但是如果数据丢失,如果在使用Kafka来分发消息,在数据处理的过程中可能会出现处理程序出异常或者是其它的错误,会造成数据丢失或不一致。这个时候你也许会想要通过kafka把数据从新处理一遍,或者指定kafka的offset读取。kafka默认会在磁盘上保存到7天的数据,你只需要把kafka的某个topic的co...

weixin_30610755的博客 719

Telegraf监控客户端调研笔记(2)-CPU、MEM、DISK、IO相关指标采集

这是系列文章,之前的文章如下: Telegraf监控客户端调研笔记(1)-介绍、安装、初步测试 Telegraf大家有了基本了解了,但是能否用好,未必喽,今天我着重调研了一下Telegraf对CPU、内存、硬盘相关指标的采集,大部分指标还算容易理解,硬盘IO相关的有点麻烦,好,下面开始介绍。 CPU CPU相关的指标比较简单,配置也比较简单,在inputs.cpu这个section,具体如下: # Read metrics about cpu usage[[inputs.cpu]]

wr_java的博客 4412
上一篇: kafka学习笔记:知识点整理
下一篇: 单进程单线程的Redis如何能够高并发
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值