【大数据】Flink 架构(六):保存点 Savepoint

Flink 架构》系列(已完结),共包含以下 6 篇文章:

  • Flink 架构(一):系统架构
  • Flink 架构(二):数据传输
  • Flink 架构(三):事件时间处理
  • Flink 架构(四):状态管理
  • Flink 架构(五):检查点 Checkpoint(看完即懂)
  • Flink 架构(六):保存点 Savepoint

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

Flink 架构(六):保存点 Savepoint

  • 1.保存点的使用
  • 2.从保存点启动应用

Flink 的故障恢复算法是基于 状态的检查点 来完成的。检查点会周期性地生成,而且会根据配置的策略自动丢弃。检查点的目的是保证应用在出现故障的时候可以顺利重启,因此当应用被手动停止后,检查点也会随之删除(可以通过配置让应用在取消的时候 保留最近一次检查点)。但除了用于故障恢复,应用的一致性快照还有很多其他用途。

Flink 最具价值且独具一格的功能之一是 保存点。原则上,保存点的生成算法和检查点完全一样,因此可以把保存点看做包含一些额外元数据的检查点。保存点的生成不是由 Flink 自动完成,而是需要由用户(或外部调度器)显式触发。同时,Flink 也不会自动清理保存点。后续我们将介绍如何生成和删除保存点。

1.保存点的使用

给定一个应用和一个兼容的保存点,我们可以从该保存点启动应用。这样就能用保存点内的数据初始化状态并从生成保存点的那一刻继续运行应用。这个行为看上去和利用检查点将应用从故障中恢复完全一致,但其实故障恢复只是一种特殊情况,它会在完全相同的集群上,以完全相同的配置,运行完全相同的应用。而将应用从某个保存点启动还能让你做更多事情。

  • ✅ 从保存点启动一个不同但相互兼容的应用。这意味着你可以修复应用的一些逻辑 Bug,然后在数据流来源的支持范围内下尽可能多地重新处理输入事件,以此来修复结果。应用修改还可用于 A/B 测试或需要不同业务逻辑的假想场景。需要注意的是,应用和保存点必须相互兼容,只有这样应用才能加载保存点内的状态。
  • ✅ 用不同的并行度启动原应用,从而实现应用的扩缩容。
  • ✅ 在另一个集群上启动相同的应用。这允许你把应用迁移到一个新的 Flink 版本,或是一个不同的集群或数据中心。
  • ✅ 利用保存点暂停某个应用,稍后再把它启动起来。这样可以为更高优先级的应用腾出集群资源,或者在输入数据不连续的情况下及时释放资源。
  • ✅ 为保存点设置不同版本并将应用状态归档。

保存点的功能如此强大,以至于很多用户都会 周期性地创建保存点,从而可以及时 “回到过去”。我们在生态中见到保存点最有趣的应用之一是不断将流式应用迁移到实例价格最低的数据中心。

2.从保存点启动应用

所有之前提到的保存点相关用例都遵循同一个模式。首先为正在运行的应用生成一个保存点,然后在应用启动时用它去初始化状态。本节我们将介绍 Flink 在从保存点启动时如何去初始化应用状态。

每个应用都会包含很多算子,而每个算子又可以定义一个或多个的键值或算子状态。算子会在一个或多个任务上并行执行,因此一个典型的应用会包含多个状态,它们分布在不同 TaskManager 进程内的算子任务上。

下图所展示的应用包含了三个算子,每个算子各有两个任务。其中一个算子(OP-1)有一个算子状态(OS-1),另一个算子(OP-2)有两个键值分区状态(KS-1KS-2)。在生成保存点的时候,所有任务的状态都会拷贝到某个持久化存储位置上。

在这里插入图片描述
保存点中的状态副本会按照 算子标识状态名 称进行组织。该算子标识和状态名需要能将保存点的状态数据映射到应用启动后的算子状态上。当应用从保存点启动时、Flink 会将保存点的数据分发到对应算子的任务上。

❗ 注意:保存点没有包含 算子任务 的相关信息。这是因为任务数目可能会随着应用启动时所指定的并行度而改变。我们已经在之前的博客中讨论过 Flink 对于有状态算子的扩缩容策略。

如果应用在从保存点启动的时候发生过改动,那么保存点中的状态只有在应用还保留着那些含有对应标识和状态名称的算子时才可以成功映射。默认情况下,Flink 会给每个算子分配一个唯一标识。但该标识是根据前置算子的标识按照某种确定规则生成的。这意味着任何一个前置算子发生改变(例如添加或删除某个算子)都会导致该标识发生变化。因此使用默认算子标识的应用如果不想丢失状态,那么改动空间会比较有限。所以我们强烈建议手工指定算子标识,而不要依赖 Flink 的默认分配机制。有关分配算子标识的详细内容会在后续有关 “指定唯一算子标识” 的博客中介绍。

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

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

相关文章

云上高可用系统-韧性设计模式

一、走近韧性设计模式 (一)基本概念 韧性设计模式是一系列在软件工程中用于提高系统韧性的设计原则、策略、实践和模式。韧性(Resilience)在这里指的是系统对于各种故障、异常和压力的抵抗能力,以及在遭受这些挑战后…

重生奇迹MU弓箭手技能搭配

重生奇迹mu弓箭手技能怎么选择和搭配呢?重生奇迹mu弓箭手是一个远程射手定位的英雄,下面为大家带来重生奇迹mu弓箭手技能选择攻略。 首先,从人物属性上看,弓箭手属于敏捷型高攻单位。在重生奇迹mu中敏捷属性带来的收益在于高质量…

Mac下查看、配置和使用环境变量

Mac下查看、配置和使用环境变量 一:Mac怎么查看环境变量命令 printenv一:这个命令会一次性列出所有环境变量的键值对,输出格式为: VAR1value1 VAR2value2 ...二: 也可以通过给这个命令加上环境变量名参数&#xff0…

循环购模式——解决用户复购难 用户粘性差!

随着电商市场的竞争加剧,消费者需求日益多样化,电商企业需要不断创新以满足市场需求。循环购模式作为一种新兴的消费模式,正逐渐受到消费者的青睐,成为电商行业的新热点。本文将深入剖析循环购模式的魅力,探索其在电商…

天猫超市卡回收平台

京回收等卡商能回收天猫超市卡 天猫商城当中的天猫超市,实际也是类似于京东自营店有关销售货物模式,对于天猫超市里面的东西,均是由天猫进行管理,并从商品的采购,就是一手进行操作。相关的物品,以相关商城会…

JVM篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、JVM 类加载机制二、类加载器三、双亲委派前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、JVM 类加载机制 JVM 类…

【每日一题】5.LeetCode——环形链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

JS基础 - 遍历对象方法(6种)

初始值: var obj {a: 1,b: 2,c: 3,d: 4,e: 5,}; 第一种:for in for (let key in obj) {console.log(key ":" obj[key]);} 第二种:Object.keys 获取key Object.keys(obj).forEach((key) > {console.log(key ":" …

RT-DETR改进有效系列目录 | 包含卷积、主干、RepC3、注意力机制、Neck上百种创新机制

💡 RT-DETR改进有效系列目录 💡 前言 Hello,各位读者们好 Hello,各位读者,距离第一天发RT-DETR的博客已经过去了接近两个月,这段时间里我深入的研究了一下RT-DETR在ultralytics仓库的使用,旨在为大家解决为什么用v8的仓库训练的时候模型不收敛,精度差的离谱的问题,…

swift - reduce简介

reduce 减少&#xff0c;降低&#xff1b;&#xff08;烹调中&#xff09;使变浓稠&#xff0c;收汁&#xff1b;<美>节食减肥&#xff1b;使沦为&#xff0c;使陷入&#xff08;不好的境地&#xff09;&#xff1b;迫使&#xff0c;使不得不&#xff08;做&#xff09;&…

自然语言处理中的词云生成

一.词云的介绍 自然语言处理中的词云技术是文本可视化的一种形式&#xff0c;用于展示文本数据中词语的频率分布。以下是词云在自然语言处理中的基本介绍和发展&#xff1a; 起源和发展&#xff1a; 词云的概念最初来源于信息可视化领域&#xff0c;用于将文本中的关键词以视…

脉宽调制器

1. pwm脉宽调制器 脉宽调制器: 一种硬件设备, 用于 动态调制 方波 的 一些属性, 方波的周期,频率,占空比 占空比? : 有效电平占 整个周期的比值 可以使用PWM 控制功率, 控制频率 用于 开关电源 或 逆变器 1.1 原理 PWM原理: 如图所示 本质就是一个定时器: 由原理…

游戏开发丨基于Pygame的AI版贪吃蛇小游戏

文章目录 写在前面需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于pygame的AI版贪吃蛇小游戏 所需环境 pythonpycharm或anacondapygame 下载地址 https://download.csdn.net/download/m0_68111267/88789665 需求分析 本游戏使用Pygame模块开…

FL Studio21.2.2中文学生版免费下载(支持简体中文,支持苹果M1/M2处理器)

今天小编给大家带来的是一款功能非常强大的音乐创作编辑软件它就是(水果软件)。使用FL Studio21中文版可以轻松帮我们制作自己的音乐唱片&#xff0c;拥有强大且专业的创作工具&#xff0c;COCO玛奇朵为您提供FL Studio(水果软件)2024免费下载&#xff0c; FL Studio 21 Win-安…

ASCP电气防火限流式保护器功能以及应用场景

功能&#xff1a; ASCP200型电气防火限流式保护器可有效克服传统断路器、空气开关和监控设备存在的短路电流大、切断短路电流时间长、短路时产生的电弧火花大&#xff0c;以及使用寿命短等弊端&#xff0c;发生短路故障时&#xff0c;能以微秒级速度快速限制短路电流以实现灭弧…

C++:异常体系

异常体系 异常1.C语言传统的处理错误的方式2.C异常概念3.异常的使用3.1异常的抛出和捕获3.2 异常的重新抛出3.3异常安全3.4 异常规范 4.C标准库的异常体系5.异常的优缺点 异常 1.C语言传统的处理错误的方式 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以…

深度视频恢复软件推荐,轻松恢复视频文件!

“我在电脑上保存了一些视频&#xff0c;但在清理时却不小心将这些视频删除了&#xff0c;有什么方法可以恢复删除的视频吗&#xff1f;希望大家给我推荐一些好用的方法。” 随着科技的飞速发展&#xff0c;数字媒体已经成为了我们生活中不可或缺的一部分。然而&#xff0c;数字…

17K star!开源免费的离线OCR工具

平时工作中,总会遇到想对图片内文字进行处理的情况,我们就来介绍一款开源、免费的离线OCR工具,它就是:Umi-OCR。 关于 Umi-OCR Umi-OCR是开源、免费的离线OCR软件。支持截屏/粘贴/批量导入图片,段落排版/排除水印,扫描/生成二维码。项目内置多国语言库,方便切换。 Umi-…

【Python时序预测系列】基于LSTM实现单变量时间序列预测(源码)

一、引言 前文回顾&#xff1a; 【Python时序预测系列】基于Holt-Winters方法实现单变量时间序列预测&#xff08;源码&#xff09; 【Python时序预测系列】基于ARIMA法实现单变量时间序列预测&#xff08;源码&#xff09; 【Python时序预测系列】基于SARIMA实现单变量时间…

超声波清洗机买哪款比较好?四款公认好用超声波清洗机

超声波清洗机好用吗&#xff1f;好多人都说是普通的清洁工具买回家就是浪费钱&#xff0c;真心不建议购买&#xff0c;但其实&#xff0c;手动清洗眼镜的话会比较容易损坏镜片&#xff0c;一副眼镜比较普通的也要上几百了&#xff0c;而且眼镜是我们日常生活中经常会使用的&…