一、问题描述

用户配置了高级参数很多,观察kafka增量数据不多,flink负载不高情况下两个checkpoint后才可查询到数据。   排查时hdfs有数据文件产生,但是mainfast文件中最新快照id没变化。

二、原因

经腾讯排查,用户参数指定高级参数execution.checkpointing.unaligned: true引起。

写入iceberg时,flink writer算子收到checkpoint通知后会把本地内存数据写出到文件,写出成功时会把文件名提交给IcebergFilesCommitter。

正常情况是writter算子写出数据到文件后,把文件名先提交给Committer,Committer收到所有文件名后再去提交生成iceberg快照。

加上该参数后提交乱序,Committer算子存在只收到部分文件名就提交的情况,导致查询该快照没有最新数据。

加上该参数后,有些数据没处理情况下,这部分未提交数据放入state中,就可以做checkpoint,但是当前checkpoint没有处理这些消息。等到下个checkpoint时继续处理这些消息,生成文件名,继续commit,数据不会丢失,这部分数据文件在下个快照后才可查询。

该参数在flink1.11引入,直到flink1.18还不太稳定,默认没有打开,适用于某些task处理复杂极端情况下使用,使用该参数就可能产生数据延迟。

三、恢复

去除execution.checkpointing.unaligned: true参数,savepoint后启动。!!!存在启动不成功风险,我们用户尝试后可从savepoint恢复,但存在启动不了的风险。

Flink同步kafka到iceberg数据延迟,两个checkpoint后才可查询的更多相关文章

  1. Flink同步Kafka数据到ClickHouse分布式表

    公众号文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问. 业务需要一种OLAP引擎,可以做到实时写入存储和查询计算功能,提供高效.稳健的实时数据服务,最终决定C ...

  2. 两个月后才更新一篇。。。。LIB和DLL的差别

     共同拥有两种库: 一种是LIB包括了函数所在的DLL文件和文件里函数位置的信息(入口).代码由执行时载入在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是 ...

  3. HBase2实战:HBase Flink和Kafka整合

    1.概述 Apache官方发布HBase2已经有一段时间了,HBase2中包含了许多个Features,从官方JIRA来看,大约有4500+个ISSUES(查看地址),从版本上来看是一个非常大的版本了 ...

  4. 使用Apache Flink 和 Apache Hudi 创建低延迟数据湖管道

    近年来出现了从单体架构向微服务架构的转变.微服务架构使应用程序更容易扩展和更快地开发,支持创新并加快新功能上线时间.但是这种方法会导致数据存在于不同的孤岛中,这使得执行分析变得困难.为了获得更深入和更 ...

  5. Spark-Streaming获取kafka数据的两种方式:Receiver与Direct的方式

    简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 Receiver 使用Kafka的高层次Consumer API来 ...

  6. SparkStreaming获取kafka数据的两种方式:Receiver与Direct

    简介: Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以简单理解成: Receiver方式是通过zookeeper来连接kafka队列, Dire ...

  7. spark-streaming获取kafka数据的两种方式

    简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 一.Receiver方式: 使用kafka的高层次Consumer ...

  8. SparkStreaming与Kafka,SparkStreaming接收Kafka数据的两种方式

    SparkStreaming接收Kafka数据的两种方式 SparkStreaming接收数据原理 一.SparkStreaming + Kafka Receiver模式 二.SparkStreami ...

  9. Flink消费Kafka数据并把实时计算的结果导入到Redis

    1. 完成的场景 在很多大数据场景下,要求数据形成数据流的形式进行计算和存储.上篇博客介绍了Flink消费Kafka数据实现Wordcount计算,这篇博客需要完成的是将实时计算的结果写到redis. ...

  10. 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)

    转载自:https://blog.csdn.net/weixin_41615494/article/details/7952173 一.基于Receiver的方式 原理 Receiver从Kafka中 ...

随机推荐

  1. Nuxt.js 应用中的 render:response 事件钩子

    title: Nuxt.js 应用中的 render:response 事件钩子 date: 2024/11/29 updated: 2024/11/29 author: cmdragon excer ...

  2. Mac文件拷贝Win后的._文件清理

    前言 我们在从mac向win拷贝文件后总会多出来 部分 ._ 开头的文件或名为.DS_Store的文件 根据上图在苹果官方社区的回答来看,这些文件存储了主文件的一些资料,图表等数据,如果说未来这些文件 ...

  3. 对象存储COS-数据处理能力升级!“组合拳”助力存储新时代!

    近日腾讯云对象存储(COS)完成了"存储"到"存储+"的升级! 互联网让信息传播的更快,人们仿佛对信息更加渴望,我们身边的产品越来越多,获取信息的类型也丰富多样 ...

  4. 2024年1月Java项目开发指南5:controller、service、mapper

    准备工作 你知道什么是JSON吗? JSON是什么? 格式是什么? 有什么用? 有什么优点? 有什么缺点? 请自己百度探索一下,对JSON做了个了解,如果你不知道什么是JSON的话,知道就免了,直接下 ...

  5. Base64解码、Base64编码、Base64加密解密规则

    转换规则:进行Base64转换的时候,将3个byte(3*8bit = 24bit)的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲器中剩下的bit用0补 ...

  6. 使用Apache commons-pool2实现高效的FTPClient连接池的方法

    一. 连接池概述​ 频繁的建立和关闭连接,会极大的降低系统的性能,而连接池会在初始化的时候会创建一定数量的连接,每次访问只需从连接池里获取连接,使用完毕后再放回连接池,并不是直接关闭连接,这样可以保证 ...

  7. IM群聊消息的已读未读功能在存储空间方面的实现思路探讨

    1.引言 IM系统中,特别是在企业应用场景下,消息的已读未读状态是一个强需求. 以阿里的钉钉为例,钉钉的产品定位是用于商务交流,其"强制已读回执"功能,让职场人无法再"假 ...

  8. 长连接网关技术专题(六):石墨文档单机50万WebSocket长连接架构实践

    本文由石墨文档技术杜旻翔分享,原题"石墨文档 Websocket 百万长连接技术实践",有修订. 1.引言 在石墨文档的部分业务中,例如文档分享.评论.幻灯片演示和文档表格跟随等场 ...

  9. Event-Stream技术

    服务端 websocket和event-stream的优缺点 WebSocket和Event-Stream(Server-Sent Events)都是实现实时通信的技术,但是它们各自有不同的优缺点. ...

  10. 使用 SK Plugin 给 LLM 添加能力

    前几篇我们介绍了如何使用 SK + ollama 跟 LLM 进行基本的对话.如果只是对话的话其实不用什么 SK 也是可以的.今天让我们给 LLM 整点活,让它真的给我们干点啥. What is Pl ...