Flink同步kafka到iceberg数据延迟,两个checkpoint后才可查询
一、问题描述
用户配置了高级参数很多,观察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后才可查询的更多相关文章
- Flink同步Kafka数据到ClickHouse分布式表
公众号文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问. 业务需要一种OLAP引擎,可以做到实时写入存储和查询计算功能,提供高效.稳健的实时数据服务,最终决定C ...
- 两个月后才更新一篇。。。。LIB和DLL的差别
共同拥有两种库: 一种是LIB包括了函数所在的DLL文件和文件里函数位置的信息(入口).代码由执行时载入在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是 ...
- HBase2实战:HBase Flink和Kafka整合
1.概述 Apache官方发布HBase2已经有一段时间了,HBase2中包含了许多个Features,从官方JIRA来看,大约有4500+个ISSUES(查看地址),从版本上来看是一个非常大的版本了 ...
- 使用Apache Flink 和 Apache Hudi 创建低延迟数据湖管道
近年来出现了从单体架构向微服务架构的转变.微服务架构使应用程序更容易扩展和更快地开发,支持创新并加快新功能上线时间.但是这种方法会导致数据存在于不同的孤岛中,这使得执行分析变得困难.为了获得更深入和更 ...
- Spark-Streaming获取kafka数据的两种方式:Receiver与Direct的方式
简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 Receiver 使用Kafka的高层次Consumer API来 ...
- SparkStreaming获取kafka数据的两种方式:Receiver与Direct
简介: Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以简单理解成: Receiver方式是通过zookeeper来连接kafka队列, Dire ...
- spark-streaming获取kafka数据的两种方式
简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 一.Receiver方式: 使用kafka的高层次Consumer ...
- SparkStreaming与Kafka,SparkStreaming接收Kafka数据的两种方式
SparkStreaming接收Kafka数据的两种方式 SparkStreaming接收数据原理 一.SparkStreaming + Kafka Receiver模式 二.SparkStreami ...
- Flink消费Kafka数据并把实时计算的结果导入到Redis
1. 完成的场景 在很多大数据场景下,要求数据形成数据流的形式进行计算和存储.上篇博客介绍了Flink消费Kafka数据实现Wordcount计算,这篇博客需要完成的是将实时计算的结果写到redis. ...
- 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)
转载自:https://blog.csdn.net/weixin_41615494/article/details/7952173 一.基于Receiver的方式 原理 Receiver从Kafka中 ...
随机推荐
- MySQL之根据经纬度计算距离
可以在MySQL层面使用自定义计算函数来使用 CREATE DEFINER=`xxx`@`%` FUNCTION `get_distance`( lat1 float,lon1 float,lat2 ...
- elementUI 表格之合并同类项(包括行和列)
mergeSpan(tableData, arr) { //["areName","indexCode"] let spanArr = new Array(ta ...
- 三菱电梯IC卡系统数据库备份与恢复
查看msde2000的登录方式 sa密码lonele 64位操作系统下 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsof ...
- MySQL原理简介—11.优化案例介绍
大纲 1.禁止或改写SQL避免自动半连接优化 2.指定索引避免按聚簇索引全表扫描大表 3.按聚簇索引扫描小表减少回表次数 4.避免产生长事务长时间执行 1.禁止或改写SQL避免自动半连接优化 (1)业 ...
- 分布式系统架构1:共识算法Paxos
1.背景 今天开始更新分布式的文章,工作几年后还没系统的学习分布式的内容,趁着还有时间学习沉淀的时候多输出些文章 2.为什么需要分布式共识算法 思考:现在你有一份随时变动的数据,需要确保它正确存储在网 ...
- 解决Your project does not reference问题
错误现象 vs编译时,报错: Your project does not reference ".NETFramework,Version=v##" framework. Add ...
- 利用smtp发邮件
小功能,备忘 MailMessage objMailMessage = new MailMessage();//引入System.Net objMailMessage.From = new MailA ...
- Nvidia Jetson Xavier NX安装GPU版pytorch与torchvision
前提是已经安装好了系统,并通过JetPack配置完了cuda.cudnn.conda等库. 1. 安装GPU版pytorch 在base环境上新建环境,python版本3.8,激活并进入. conda ...
- containerd 导入镜像
containerd 导入镜像 containerd而非docker,需要离线导入镜像 解决原理https://segmentfault.com/a/1190000019534913ctr --nam ...
- archlinux 显卡驱动
https://arch.icekylin.online/guide/rookie/graphic-driver.html archlinux 显卡驱动# 接天莲叶无穷碧,映日荷花别样红# 近年来,a ...