Flink 容错机制

news2024/11/16 13:50:17

一致性检查点(checkpoint)

在这里插入图片描述

什么是 Checkpoint ?

  • Flink 故障恢复机制的核心,就就是应用状态的一致性检查点;
  • 有状态流应用的一直检查点,其实就是所有任务的状态,在某一时间点的一份拷贝(快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候;

Flink 做 checkpoint 时的具体过程

  1. 触发 checkpoint:
    当 Flink 的 JobManager 发起一个 checkpoint 时,它会向所有的 TaskManager 发送一个 checkpoint barrier 。这个 barrier 包含全局唯一的 checkpoint ID;

  2. barrier 传播:
    barrier 被插入到数据流中,它会随着数据流到达每一个算子实例。当一个算子接收到 barrier ,它会停止处理新的输入数据,直到所有的并行实例都接受到 barrier 并准备好进行 checkpoint;

  3. 状态保存:
    每个算子实例开始保存其当前的状态。状态会被序列化并通过网络传输到持久化的存储系统中,例如 HDFS;

  4. 确认 checkpoint:
    当所有算子实例完成状态保存并且确认状态已经被持久化后,它们会将确认消息发送回 JobManager 。JobManager 收集所有确认消息,一旦所有算子实例都确认了 checkpoint ,它就会标记 checkpoint 成功;

  5. 清理失败的 checkpoint:
    如果在 checkpoint 的过程中,任何一个算子实例失败或者超时没有响应,整个 checkpoint 将会被标记为失败。JobManager 会通知所有 TaskManager 清理失败的 checkpoint 相关的状态。并重新尝试下一个 checkpoint;

Flink 从 checkpoint 恢复时的具体过程

在这里插入图片描述

  1. 检查失败:
    当 JobManager 或 TaskManager 发现某个任务失败时,它会触发恢复过程;

  2. 选择 checkpoint:
    JobManager 会选择一个最近的成功的 checkpoint 作为恢复点;

  3. 恢复 TaskManager 状态:
    Jobmanager 向失败的 TaskManager 发送恢复指令,指示它从特定的 checkpoint 恢复,TaskManager 接收到指令后,会加载对应的 checkpoint 的状态;

  4. 重建拓扑和状态:
    TaskManager 根据 checkpoint 中保存的状态重建任务的拓扑结构和状态。这意味着它会重新初始化所有算子实例,并从 checkpoint 加载状态数据;

  5. 重放数据流:
    一旦状态被恢复,TaskManager 开始重发数据流。对于有状态的算子,这意味着从 checkpoint 状态继续处理数据。对于无状态的算子,它们可以立即开始处理新的数据;

  6. 确认恢复:
    当所有失败的任务都被成功恢复后,JobManager 会确认恢复过程完成。此时,Flink 作业会从失败点继续运行,就像没发生过中断一样;

  7. 更新状态后端:
    在某些情况下,Flink 可能还需要更新状态后端的引用,确保所有任务指向最新的状态位置;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1884920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

月之暗面kimi底层推理系统原理

太长不看版(作者大佬自己的在知乎碎碎念): 本论文与很多 Prefill/Decoding 分离的论文不同的是,这套方案已经在大规模集群上进行几个月的验证并证明了方案的有效性。目前这套系统承载了 Kimi 线上80% 以上的流量, 效果…

(18)GPS/指南针(一)

文章目录 前言 1 GPS/指南针 2 RTK GPS 3 GPS驱动程序选项 4 GPS自动切换 5 高级用途 前言 Copter/Plane/Rover 支持与 GPS、指南针和其他定位技术的整合: 1 GPS/指南针 Avionics Anonymous GNSS CompassAvionics Anonymous CompassBeitain BN-220 GPS / B…

《梦醒蝶飞:释放Excel函数与公式的力量》8.1 COUNT函数

8.1 COUNT函数 在Excel中,COUNT函数及其相关变体用于统计单元格中的数据量。它们能够帮助我们快速统计数据的数量,常用于数据分析和报表制作。 8.1.1 函数简介 COUNT函数用于统计指定区域内的数值单元格数量。它只统计数值,不包括文本或空…

XD3C03P1G、XD3C01N3F比例方向控制阀放大板

XD3A01N2G、XD3A03N2G、XD3C03N1F、XD3C03P1G、XD3C01N3F、XD3C03N2F、XD3C01P4G、XD3C03P3G、XD3C03N2F、XD3C03N2G、XDP3A01P1F、XDP3C03N2G、XDP3A03P3G、XDP3C01NAF、XDP3C03P6G、XDP3A03PAG、XDP3A03N3F液压比例方向阀是液压系统中的关键元件,用于实现对流量、…

二叉树的右视图-二叉树

199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 层序遍历&#xff0c;广度优先 queue先进后出&#xff0c;每层从左往右进树&#xff0c;最后一个就是最右边的数&#xff1b;pop掉这层的。push下一层&#xff1b; class Solution { public:vector<int> r…

考研生活day2--王道课后习题2.3.1、2.3.2、2.3.3

2.3.1 题目描述&#xff1a; 这题和曾经做过的LeetCode203.移除元素一模一样&#xff0c;所以我们就使用LeetCode进行书写&#xff0c;题目链接203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 解题思路 大家的第一反应肯定是根据书上所学的书写方法一样书写&…

【linux网络(七)】数据链路层详解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. 认识MAC…

C++视觉开发 三.缺陷检测

一.距离变换 1.概念和功能 距离变换是一种图像处理技术&#xff0c;用于计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距离。它常用于图像分割、形态学操作和形状分析等领域。它计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距…

CAM350删除铺铜?

CAM350删除铺铜&#xff1f; 1、选择菜单栏Add 2、选择Polygon Void→Line... 3、然点击需要操作的铜箔&#xff0c;使其高亮 4、用鼠标框选需要删除的部分&#xff0c;然后右击 5、删除后如下图所示 The Layer Bar controls are part of the new Navigation Pane and can also…

dledger原理源码分析系列(一)-架构,核心组件和rpc组件

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构&#xff0c;核心组件&#xff1b;rpc组…

MySQL 9.0创新版发布!功能又进化了!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

Runway:Gen-3 Alpha 文生视频现已开放

Runway 自 6 月 17 号公布 Gen-3 Alpha 快半个月了, 现在终于对所有人开放了&#xff0c;当然前提是你至少订阅了标准版&#xff08;12 美刀/月), 传送门&#xff1a;runwayml.com

【CSS in Depth 2 精译】2.3 告别像素思维

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem 2.2.1 使用 em 定义字号2.2.2 使用 rem 设置字号 2.3 告别像素思维 ✔️2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.3 告别…

电脑IP地址自动获取:操作指南与优势分析

在数字化时代&#xff0c;网络连接已成为我们日常生活和工作中的重要组成部分。而在建立网络连接的过程中&#xff0c;IP地址的设置无疑是至关重要的一环。IP地址&#xff0c;作为网络设备的唯一标识&#xff0c;其设置方式直接影响到网络的稳定性和安全性。本文将详细介绍如何…

充气膜羽毛球馆投资需要多少钱—轻空间

充气膜羽毛球馆是一种现代化的运动设施&#xff0c;以其灵活的结构设计和高效的能耗管理受到广泛关注。投资建设一个充气膜羽毛球馆&#xff0c;涉及多个方面的成本&#xff0c;包括基础建设、膜材选择、系统配置以及运营维护费用。轻空间将详细分析投资建设充气膜羽毛球馆的成…

如何在OpenEuler 上快速部署一套Zabbix7.0监控系统

如何在OpenEuler 上快速部署一套Zabbix监控系统 一、环境信息 用途机器IP操作系统备注zabbix-server172.22.33.180openeuler 22.03 LTS SP37.0 LTS 版本&#xff0c;容器部署zabbix-agent172.16.10.182openeuler 22.03 LTS SP37.0 源码编译部署 二、Docker 部署 2.1 二进制…

一场前端框架的“武林大会”,三大主流框架之间的性能比较!!!

大家好,我是CodeQi! 在前端开发的江湖中,Vue.js、React 和 Angular 可谓是三大门派,个个身怀绝技,堪称“武林三杰”。 我,作为一名勤奋的代码侠士,决定深入研究这三大门派的奥义,探讨它们在性能方面的表现。且听我细细道来。 什么是 Vue? Vue.js 是由尤雨溪创建的前…

pdf合并工具,pdf合并器,多个pdf合并成一个pdf

你是否有过这样的困扰&#xff1a;手头上有好几个pdfF文档&#xff0c;需要将它们合并成一个单一的文件&#xff0c;但却不知道从何下手&#xff1f;别担心&#xff0c;这篇文章将为你揭秘多个pdf合并成一个pdf的方法&#xff0c;让你轻松实现pdf文档整合的问题&#xff01; 首…

JDBC1(JDBC相关类与接口 ​连接mysql数据库​ 测试 不同数据库厂商实现-MySQL和Oracle)

目录 一、JDBC 1. JDBC相关类与接口 1.1 DriverManager 1.2 Connection 1.3 Statement 4.ResultSet 2. JDBC工作原理 二、连接mysql数据库 1. 导入jar包 2. 使用DriverManager加载驱动类 3. Connection接口 4. Statement接口 5. ResultSet接口 ​编辑 6. 关闭并…

Drools开源业务规则引擎(一)- 安装与介绍

文章目录 [toc] Drools开源业务规则引擎&#xff08;一&#xff09;- 安装与介绍0.何为规则引擎1.Drools介绍1.1.依赖模块1.2.规则引擎 2.Drools安装2.1.依赖导入2.2.规则的输入和输出类型输入类型输出类型 2.3.创建规则文件2.4.构建可执行规则库2.5.执行结果&#xff1a; 3.Dr…