Flink笔记整理(七)

news2024/9/28 17:29:15

Flink笔记整理(七)

文章目录

  • Flink笔记整理(七)
  • 九、容错机制
    • 9.1 检查点(Checkpoint)
    • 检查点的保存
    • 从检查点恢复状态
    • 检查点算法
    • 9.2 状态一致性
    • 9.3 端到端精确一次(End-To-End Exactly-Once)
  • 总结


九、容错机制

在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。

9.1 检查点(Checkpoint)

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

检查点的保存

  • 周期性的触发保存
    “随时存档”确实恢复起来方便,可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存,当大量数据同时到来时,就会耗费很多资源来频繁做检查点,数据处理的速度就会受到影响。所以在Flink中,检查点的保存是周期性触发的,间隔时间可以进行设置。
    保存的时间点
    我们应该在所有任务(算子)都恰好处理完一个相同的输入数据的时候,将它们的状态保存下来。

      这样做可以实现一个数据被所有任务(算子)完整地处理完,状态得到了保存。
    
      如果出现故障,我们恢复到之前保存的状态,故障时正在处理的所有数据都需要重新处理;我们只需要让源(source)任务向数据源重新提交偏移量、请求重放数据就可以了。当然这需要源任务可以把偏移量作为算子状态保存下来,而且外部数据源能够重置偏移量;kafka就是满足这些要求的一个最好的例子。
    
  • 保存的具体流程
    检查点的保存,最关键的就是要等所有任务将“同一个数据”处理完毕。下面我们通过一个具体的例子,来详细描述一下检查点具体的保存过程。

      回忆一下我们最初实现的统计词频的程序——word count。这里为了方便,我们直接从数据源读入已经分开的一个个单词,例如这里输入的是:
    

“hello”,“world”,“hello”,“flink”,“hello”,“world”,“hello”,“flink”…

   我们所需要的就是每个任务都处理完“hello”之后保存自己的状态。

从检查点恢复状态

在这里插入图片描述

检查点算法

    在Flink中,采用了基于Chandy-Lamport算法的分布式快照,可以在不暂停整体流处理的前提下,将状态备份保存到检查点。

检查点分界线(Barrier)
借鉴水位线的设计,在数据流中插入一个特殊的数据结构,专门用来表示触发检查点保存的时间点。收到保存检查点的指令后,Source任务可以在当前数据流中插入这个结构;之后的所有任务只要遇到它就开始对状态做持久化快照保存。由于数据流是保持顺序依次处理的,因此遇到这个标识就代表之前的数据都处理完了,可以保存一个检查点;而在它之后的数据,引起的状态改变就不会体现在这个检查点中,而需要保存到下一个检查点。

    这种特殊的数据形式,把一条流上的数据按照不同的检查点分隔开,所以就叫做检查点的“分界线”(Checkpoint Barrier)。

在这里插入图片描述
Flink 检查点详解以及实现代码

9.2 状态一致性

Flink 状态一致性

9.3 端到端精确一次(End-To-End Exactly-Once)

端到端精确一次(End-To-End Exactly-Once)


总结

在这里插入图片描述

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

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

相关文章

中科亿海微SoM模组——光纤陀螺控制板

光纤陀螺控制板 光纤陀螺仪是一种高精度、高可靠性的惯性测量仪器,被广泛应用于导航、姿态控制等应用场景,具有非常重要的应用价值。 本文介绍的光纤陀螺控制板是基于中科亿海微自研的SiP芯片平台,以及光纤陀螺数字信号处理流程&#xff0c…

安泰高压功率放大器的作用以及应用有哪些

高压功率放大器是一种用于增强信号强度的电子设备。它的作用是将输入信号的功率放大到足够的水平,以便在系统中进行传输或执行特定的任务。高压功率放大器在各种领域都有广泛的应用,从通信到科学研究再到医疗设备等多个领域都可以找到其身影。 高压功率放…

echarts横向柱状图

一、效果图 二、代码 let option {grid: {top: 8%,bottom: -20,right: 20,left: 20,containLabel: true},xAxis: {show: false},yAxis: [{triggerEvent: true,show: true,inverse: true,data: getArrByKey(data, name),axisLine: {show: false},splitLine: {show: false},axi…

React(五):XLS、XLSX文件在线预览

效果 依赖 $ yarn add xlsx源码 .xlsx-wrap {position: relative;width: 100%;height: 100%;background-color: #fafafa;.ant-tabs {width: 100%;height: 100%;.ant-tabs-nav {height: 50px;padding: 0 10px;margin-bottom: 0;}.ant-tabs-content-holder {border-top: 1px so…

JavaScript对象转数组的三种简单方法

大家好!今天我们要聊的是JavaScript中一个非常实用的技巧——将对象转换为数组。 方法1:使用Object.keys()和Array.map() 首先介绍一种基础但非常实用的方法,就是通过Object.keys()获取对象的键,然后用Array.map()把这些键对应的值…

C++ primer plus 第17 章 输入、输出和文件:文件输入和输出01

C primer plus 第17 章 输入、输出和文件:文件输入和输出01 C primer plus 第17 章 输入、输出和文件:文件输入和输出01 文章目录 C primer plus 第17 章 输入、输出和文件:文件输入和输出0117.4 文件输入和输出17.4.1 简单的文件 1/0程序清…

商家转账到零钱分销返佣申请方案及驳回处理办法

分销返佣场景是商家申请最多的场景,因而申请被驳回也是最多的,根据我们上万次成功开通商家转账到零钱的经验,当商家转账到零钱的分销返佣场景被驳回时,按照以下步骤,商家都可以快速过审: 一、分析驳回原因 …

C Primer Plus 第6章——第一篇

你该逆袭了 第6章:重点摘录 零、本章内容介绍一、while 循环1、程序注释(1)伪代码 2、C 风格读取循环 二、while 语句1、终止 while 循环2、语法要点 三、用 关系运算符 和 表达式 比较大小1、fabs( ) 函数 比较 浮点数(1) fabs( ) 函数 2、什么是 真&am…

世界人口过亿的一级行政区分布

世界国人口已经突破80亿,人口过亿的国家也有14个,分别是中国、俄罗斯、巴西、墨西哥,美国、日本、印度、巴基斯坦、印度尼西亚、尼日利亚、孟加拉国、埃塞俄比亚、菲律宾、埃及。 那么作为国家的一级行政区人口过亿的区域有那些呢?这里就来…

返璞归真:通过简化用例来简化用户界面01

Larry Constantine 著harvey 译 我们常被问及精简那些最简化、抽象和通用窗体用例的重要性。到底有多重要呢?在以用户为 中心的设计中,简化那些重要窗体的用例是获得成功的关键。它能够为开发者设计优秀的用户界面 助一臂之力。通过消除不必要的或技术驱…

书籍推荐-给数字化、PLM制造从业同行推荐的几本书

基础入门和提升的书籍: 1.《制造企业的产品数据管理--原理、概念、策略》,作者:[德]约瑟夫萧塔纳著,祁国宁译 这是一本很基础,但是也非常经典的企业实施PDM管理价值和方法的书籍,大概出版于2001年&#x…

@Component 注解高端玩法【策略模式】

优质博文:IT-BLOG-CN 在Spring框架中,Component注解本身并不支持直接通过注解参数来定义一个key值。不过,你可以通过自定义注解和Qualifier注解来实现类似的功能。 以下是一个示例,展示如何通过自定义注解和Qualifier来实现将不同…

芯片行业ERP相比于传统ERP到底有什么区别

在数字化发展时代,ERP系统已成为企业管理和运营的重要工具。然而,在高度正规化的芯片行业中,传统ERP系统往往难以满足其独特的业务需求。本文将带大家一起来探讨芯片行业ERP与传统ERP之间的主要区别。 1. 专业化与定制化需求 芯片行业ERP系统…

【教资 · 科目二】教育知识与能力

【教资 科目二】教育知识与能力 官网:https://ntce.neea.edu.cn/ ‍ 题型 教育学:1、2、3、7、8(前) 心理学:4、5、6、8(后) ​ ​ 黄色:重点 蓝色:次重点 灰色…

C++商店管理系统

代码中使用了C11的特性 后面有些输出(cout输出的)的提示文本是英文,因为懒得敲中文 源码在最后面 文末投票参与一下谢谢 商品数据保存在 items.txt 用户数据保存在 users.txt 实现功能 1.添加商品(商品ID,商品名,库存数量,价格&a…

卓越运营必备神器:规划复杂项目、使用标准的项目模板,看Minitab Workspace!

可确保过程与产品卓越性的可视化工具 您是否知道Minitab Workspace是专门为Minitab统计软件配套而设计的? 您和您的团队或许会面临以下相关问题: 1) 在规划复杂项目上存在困难,如业务优化项目; 2) 因完成工作需要而使用多种未知品牌的产品; 3) 缺乏…

Python 设计模式之抽象工厂模式

文章目录 从一个例子谈起抽象工厂模式的组件构成根据抽象工厂模式实现抽象工厂模式的缺点 抽象工厂模式属于创建型设计模式,一般用来创建复杂的对象,这种对象由许多小对象组成,这些小对象都属于某个特定的类别。 从一个例子谈起 常见的例子是…

springboot企业人力资源管理系统-计算机毕业设计源码29005

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

【Windows 11 】Missing Customize FOlder OPtion 文件夹右键自定义消失

突然发现win11 无法修改文件夹的默认图标原来是因为没有自定义选项了。微软有人问,大神解决了这个问题 右键缺少的是自定义这个标签 自定义长这样子: HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers 下已经有了 {ef43ecfe-2ab9-4632-bf21…

uniapp 让同一个子组件重新加载

给子组件添加不同的 “key” 值,当 key 值改变时,Vue 会认为这是一个不同的组件,并重新创建它