Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)

这篇具有很好参考价值的文章主要介绍了Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)

为什么提出Unaligned Checkpoint(UC)?

因为反压严重时会导致Checkpoint失败,可能导致如下问题

  • 恢复时间长-服务效率低
  • 非幂等和非事务会导致数据重复
  • 持续反压导致任务加入死循环(可能导致数据丢失,例如超过kafka的过期时间无法重置offset)

UC的原理

UC有两个阶段(UC主要是快速超越buffer data)

  1. 第一阶段:UC同步阶段(任意一个barrier加入缓冲区即开始UC,barrier 直接超越所有input和outputBuffer(算子暂停处理数据))

    • barrier超越
    • 对buffer进行引用
    • 调用算子snapshot state
    • 引用state
  2. 第二阶段:异步阶段(等待所有input channel的barrier都到达)

    • 写算子的state(同步阶段引用的state)
    • 同步阶段引用的input&output buffer
    • 写其它inputChannel Barrier之前的buffer(如下图中蓝色f和G)
    • 汇报给jobmanager

    Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

UC已进行的优化

Task原理

Task处理逻辑如下,线程可能卡在结果输出影响UC

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

优化一

优化:判断有空闲output buffer再处理数据

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

需要多个buffer时还是会卡住,比如flatmap操作

优化二

优化:使用OverDraft Buffer透支Buffer,一旦透支buffer则不能处理数据(1.16已有透支Buffer功能)

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

其它优化

优化:Legacy Source(Legacy Source 是 Flink 中的一种数据源,它是在 Flink 1.0 版本中引入的,并在后续版本中被视为过时的来源)兼容UC

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

小结
  • 等待空闲Buffer+引入透支overdraft Buffer解决卡顿问题
  • Legacy source兼容等待空闲Buffer逻辑

UC风险

  • 序列化不兼容,无法重启
  • 算子连接变化UC无法恢复
  • Data Buffer会写大量小文件,导致DataNode压力过大
    • 使用Task共享文件(execution.checkpointing.channel-state.number-of-tasks-share-file)
  • 会出现死锁或内存泄漏
UC&AC对比

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint),flink,大数据

优化:在AC超时自动切换到UC(1.11版本开始)

配置方法(1.11以后版本)

execution.checkpointing.aligned-checkpoint.timeout: 10m
execution.checkpointing.unaligned-checkpoint.enabled: true

参考文档

https://www.bilibili.com/video/BV1tR4y1y7gQ/?spm_id_from=…search-card.all.click&vd_source=a52a4a5afaf8d47cb48d828c7e22e5f1文章来源地址https://www.toymoban.com/news/detail-621483.html

到了这里,关于Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flink如何利用checkpoint保证数据状态一致性

    这本质上是一『尽力而为』的方法。保证数据或事件最多由应用程序中的所有算子处理一次。 这意味着如果数据在被流应用程序完全处理之前发生丢失,则不会进行其他重试或者重新发送。下图中的例子说明了这种情况。 应用程序中的所有算子都保证数据或事件至少被处理

    2024年02月21日
    浏览(55)
  • flink正常消费kafka数据,flink没有做checkpoint,kafka位点没有提交

    1、背景 flink消费kafka数据,多并发,实现双流join 2、现象 (1)flink任务消费kafka数据,其中数据正常消费,kafka显示消息堆积,位点没有提交,并且flink任务没有做checkpoint (2)其中一个流的subtask显示finished (3)无背压 3、问题原因 (1)其中一个topic分区为1 (2)配置的并行

    2024年02月13日
    浏览(45)
  • 【大数据】Flink 架构(五):检查点 Checkpoint(看完即懂)

    《 Flink 架构 》系列(已完结),共包含以下 6 篇文章: Flink 架构(一):系统架构 Flink 架构(二):数据传输 Flink 架构(三):事件时间处理 Flink 架构(四):状态管理 Flink 架构(五):检查点 Checkpoint(看完即懂) Flink 架构(六):保存点 Savepoint 😊 如果您觉得这篇

    2024年02月19日
    浏览(47)
  • 源码解析Flink源节点数据读取是如何与checkpoint串行执行

    源码解析Flink源节点数据读取是如何与checkpoint串行执行 Flink版本:1.13.6 前置知识:源节点的Checkpoint是由Checkpointcoordinate触发,具体是通过RPC调用TaskManager中对应的Task的StreamTask类的performChecpoint方法执行Checkpoint。 本文思路:本文先分析checkpoint阶段,然后再分析数据读取阶段,

    2024年02月14日
    浏览(53)
  • Flink系列之:使用Flink CDC从数据库采集数据,设置checkpoint支持数据采集中断恢复,保证数据不丢失

    博主相关技术博客: Flink系列之:Debezium采集Mysql数据库表数据到Kafka Topic,同步kafka topic数据到StarRocks数据库 Flink系列之:使用Flink Mysql CDC基于Flink SQL同步mysql数据到StarRocks数据库

    2024年02月11日
    浏览(85)
  • Flink: checkPoint

    依据1.17.1 最新版本的内容研究下期运作原理,总的来说其实就是设置一些参数,这些参数就会影响到如何存储checkpoint的问题.用起来没什么难的,参数配置的组合到是挺多cuiyaonan2000@163.com 参考资料: Checkpointing | Apache Flink State Backends | Apache Flink Flink 中的每个方法或算子都能够是 有

    2024年02月12日
    浏览(36)
  • Flink本地checkpoint测试

    在本地IDEA测试中,使用本地文件存储系统,作为checkpoint的存储系统,将备份数据存储到本地文件中,作业停止后,从本地备份数据启动Flink程序。 主要分为两步: 1)备份数据 2)从备份数据启动 备份数据的配置,和使用HDFS文件体统类似,只不过路径填写成本地文件系统的

    2024年02月15日
    浏览(45)
  • Flink 学习八 Flink 容错机制 & checkpoint & savepoint

    https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/concepts/stateful-stream-processing/ 上一节讲述 状态后端 ;Flink是一个 带状态stateful 的数据处理系统,在处理数据的过程中,各个算子的记录的状态会随着算子处理的状态而改变 ; 状态后端 负责将状态保存在内存或外部持久化存储中 (内存

    2024年02月09日
    浏览(78)
  • Flink源码之Checkpoint执行流程

    Checkpoint完整流程如上图所示: JobMaster的CheckpointCoordinator向所有SourceTask发送RPC触发一次CheckPoint SourceTask向下游广播CheckpointBarrier SouceTask完成状态快照后向JobMaster发送快照结果 非SouceTask在Barrier对齐后完成状态快照向JobMaster发送快照结果 JobMaster保存SubTask快照结果 JobMaster收到所

    2024年02月11日
    浏览(39)
  • 如何排查 Flink Checkpoint 失败问题?

    这是 Flink 相关工作中最常出现的问题,值得大家搞明白。 1. 先找到超时的subtask序号 图有点问题,因为都是成功没失败的,尴尬了。 借图: 2. 找到对应的机器和任务 方法很多,这里看自己习惯和公司提供的系统。 3. 根据日志排查问题 netstat -nap| grep 端口号 就找到对应的p

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包