Flink系列之:Checkpoints 与 Savepoints

Flink系列之:Checkpoints 与 Savepoints

  • 一、概述
  • 二、功能和限制

一、概述

从概念上讲,Flink 的 savepoints 与 checkpoints 的不同之处类似于传统数据库系统中的备份与恢复日志之间的差异。

Checkpoints 的主要目的是为意外失败的作业提供恢复机制。 Checkpoint 的生命周期 由 Flink 管理, 即 Flink 创建,管理和删除 checkpoint - 无需用户交互。 由于 checkpoint 被经常触发,且被用于作业恢复,所以 Checkpoint 的实现有两个设计目标:i)轻量级创建和 ii)尽可能快地恢复。 可能会利用某些特定的属性来达到这个目标,例如, 作业的代码在执行尝试时不会改变。

在用户终止作业后,会自动删除 Checkpoint(除非明确配置为保留的 Checkpoint)。

Checkpoint 以状态后端特定的(原生的)数据格式存储(有些状态后端可能是增量的)

尽管 savepoints 在内部使用与 checkpoints 相同的机制创建,但它们在概念上有所不同,并且生成和恢复的成本可能会更高一些。Savepoints的设计更侧重于可移植性和操作灵活性,尤其是在 job 变更方面。Savepoint 的用例是针对计划中的、手动的运维。例如,可能是更新你的 Flink 版本,更改你的作业图等等。

Savepoint 仅由用户创建、拥有和删除。这意味着 Flink 在作业终止后和恢复后都不会删除 savepoint。

Savepoint 以状态后端独立的(标准的)数据格式存储(注意:从 Flink 1.15 开始,savepoint 也可以以后端特定的原生格式存储,这种格式创建和恢复速度更快,但有一些限制)。

二、功能和限制

下表概述了各种类型的 savepoint 和 checkpoint 的功能和限制。

✓ - Flink 完全支持这种类型的快照
x - Flink 不支持这种类型的快照
! - 虽然这些操作目前有效,但 Flink 并未正式保证对它们的支持,因此它们存在一定程度的风险

在这里插入图片描述

  • 更换状态后端 - 配置与创建快照时使用的不同的状态后端。
  • State Processor API (写) - 通过 State Processor API 创建这种类型的新快照的能力。
  • State Processor API (读) - 通过 State Processor API 从该类型的现有快照中读取状态的能力。
  • 自包含和可移动 - 快照目录包含从该快照恢复所需的所有内容,并且不依赖于其他快照,这意味着如果需要的话,它可以轻松移动到另一个地方。
  • Schema 变更 - 如果使用支持 Schema 变更的序列化器(例如 POJO 和 Avro 类型),则可以更改状态数据类型。
  • 任意 job 升级 - 即使现有算子的 partitioning 类型(rescale, rebalance, map, 等)或运行中数据类型已经更改,也可以从该快照恢复。
  • 非任意 job 升级 - 如果作业图拓扑和运行中数据类型保持不变,则可以使用变更后的 operator 恢复快照。
  • Flink 小版本升级 - 从更旧的 Flink 小版本创建的快照恢复(1.x → 1.y)。
  • Flink bug/patch 版本升级 - 从更旧的 Flink 补丁版本创建的快照恢复(1.14.x → 1.14.y)。
  • 扩缩容 - 使用与快照制作时不同的并发度从该快照恢复。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

12、Qt:用QProcess类启动外部程序:简单使用

一、说明 简单使用:在一个函数中,使用QProcess类的临时对象调用可执行文件exe,只有这个exe执行完了,这个函数才往下执行,一次性打印出exe所有输出信息;复杂使用:创建QProcess类的全局对象&…

蛮力法之背包问题

问题: 有 n 个重量分别是 w1,w2....,wn 的物品(物品编号为 1-n)它们的价值分别为 v1,v2,...,vn 给定一个容量为 W 的背包。设计从这些物品中选取一部分放入该背包的方案。 每个物品要么选中要么不选中【其实每个物品只有 1 件】,要求选中…

CSS:盒子模型

CSS:盒子模型 盒子模型盒子模型的组成盒子内容边框 border内边距 padding盒子实际大小计算CSS3的盒子类型content-boxborder-box 外边距 margin外边距合并相邻块元素垂直外边距合并嵌套块元素垂直外边距塌陷 行内元素的内外边距 盒子相关属性圆角边框盒子阴影 盒子模…

python之导入.py文件

目录 1、文件结构 2、导入.py文件 2.1同一层内文件夹内的导入 2.2不同层内文件夹内的导入 1、文件结构 Paint_master是一个工程的根目录,忽略一些文件及文件夹后,其文件结构如下: src util ImageUtil.py view BaseAdjustDialog.py MainW…

字符串函数的模拟实现(部分字符串函数)

strlen函数模拟 size_t my_strlen(const char* arr) {int count 0;while(*arr){arr;count;}return count;} int main() { printf( " %zd", my_strlen("adsshadsa"));}//模拟实现strlen函数 strcpy函数模拟 char* my_strcpy(char* arr1, const char* ar…

Python算法例21 交错正负数

1. 问题描述 给出一个含有正整数和负整数的数组,将其重新排列成一个正负数交错的数组。 2. 问题示例 给出数组[-1,-2,-3,4,5,6],重新排序之后,变成[-1,5,-…

Web前端-JavaScript(对象)

文章目录 1.对象1.1 概念1.2 创建对象三种方式**对象字面量创建对象**:new Object创建对象构造函数创建对象 1.3 遍历对象 2.作用域1.1 概述1.2 全局作用域1.3 局部作用域1.4 JS没有块级作用域1.5 变量的作用域1.6 作用域链1.7 预解析 1.对象 1.1 概念 什么是对象 …

Ubuntu 磁盘管理DF命令用法

Linux磁盘空间管理是系统运维中的核心环节,它直接影响到系统的稳定运行、数据的安全性和业务的连续性。 通过实施有效的磁盘空间管理策略,系统管理员可以确保系统的高效运作,满足不断变化的业务需求,并为用户提供可靠的服务。 因此…

【YOLOv8新玩法】姿态评估解锁找圆心位置

前言 Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现圆检测与圆心位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上训练,生成一个自定义的圆检测与圆心定位预测模型 制作数据集 本人从网络上随便找到了个工业工件…

自动标注软件AnyLabeling安装

AnyLabeling自动标注软件介绍 该工具作为一个具有Segment Anything和YOLO模型的智能标签工具,可以快速、准确地对图像进行标注。 AnyLabeling LabelImg Labelme Improved UI Auto-labeling 在Python终端运行 pip install anylabeling启动AnyLabeling anylabe…

危险品内陆运输相关知识_箱讯科技

危险品拖车 危险品拖车运输是一项涉及到高度危险物质的专业工作,需要确保合法合规的运输,并提供必要的信息以保障公共安全。进行这类运输时,需要携带一系列文件和具备特定的资质。 什么样的车适合做危险品拖车? 1、车辆类型:通…

长三角安防行业盛会“2024杭州安博会”4月份在杭州博览中心召开

作为中国安防行业的盛会,2024杭州安博会将于4月份在杭州国际博览中心隆重召开。本届安博会将汇聚全球最先进的安防技术和产品,为来自世界各地的安防从业者、爱好者以及投资者提供一个交流、展示和合作的平台。 据了解,2024杭州安博会将会展示…

Windows11系统下如何通过.cab文件更新PL2303串口驱动?

Windows11系统下如何通过.cab文件更新PL2303串口驱动? 首先,在微软官方网站上下载所需版本的.cab文件,具体链接如下: https://www.catalog.update.microsoft.com/Search.aspx?q=Prolific%20USB-to-Serial%20Comm%20Port 如下图所示,进入该网站后,找到自己所需的驱动版…

IPD产品开发的三类变更的含义和在流程中的位置

在基于IPD的产品开发过程中,变更仍然不可避免,甚至变更比基于传统流程的产品开发更多,因为IPD的产品开发是盯着市场变化、快速响应市场需求的,而这个世界唯一的不变就是变。那么,我们如何对产品开发过程中的变更进行分…

智能网络与网络安全:全球发展与未来趋势

导言 随着数字化时代的到来,智能网络和网络安全成为科技领域的研究热点。本文将深入研究智能网络与网络安全的发展过程、遇到的问题、解决过程,以及未来的可用范围。同时,关注各国在这一领域的应用情况和未来研究的趋势,以便在全球…

期货交易策略模拟测试-基于CLBISO01策略-2023.12.22

采取与昨天同样的策略进行盘中模拟测试,今天行情还可以,挺“顺溜”。

Xcode15 iOS 17 Simulator 离线安装,模拟器安装

Xcode 15 安装包的大小相比之前更小,因为除了 macOS 的 Components,其他都需要动态下载安装,否则提示 iOS 17 Simulator Not Installed。 如果不安装对应的运行模拟库 无法真机和模拟器运行,更无法新建项目。但是由于模拟器安装包…

拖拽列表简单实现

样式部分&#xff1a; <style>.item {width: 500px;text-align: center;margin-bottom: 5px;height: 40px;line-height: 40px;border-radius: 5px;color: #fff;margin: 5 auto;background-color: red;}.item.moving {background: transparent;color: transparent;border…

JNI学习(二)

静态注册 接着上篇博客学习 JNI函数 JNIEXPORT void JNICALL Java_com_example_jnidemo_TextDemo_setText(JNIEnv *env, jobject this, jstring string){ __android_log_print(ANDROID_LOG_ERROR, "test", "invoke set from C\n");char* str (char*)(*e…

【mongoose】 Model.create() no longer accepts a callback 报错解决

在最新版的 mongoose 操作 MongoDB 数据库的时候&#xff0c;当我们插入一条数据时候&#xff0c;会报错 &#xff1a;Model.create() no longer accepts a callback&#xff0c;看了很多文章都说是&#xff0c;版本太高&#xff0c;都妥协选择了降低回旧版本&#xff0c;但我就…