IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flink状态一致性检查点 -> 正文阅读

[大数据]Flink状态一致性检查点

Flink状态一致性检查点


一致性检查点:是指在某一个时刻所有算子将同一个任务都完成的情况下进行的一个快照(方便后续计算出错时,提供一个数据恢复的快照)。Flink有状态的流处理,内部每个算子任务都可以有自己的状态,对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确。


1、Spark & Flink 的CheckPoint

Spark 的CheckPoint也容错机制,对RDD的状态进行保存切断血缘关系,而Spark在map->reduce过程中宽窄依赖划分出的stage会又临时中间结果,所以我们可以拿此中间结果进行CP,这样就实现了Spark的容错机制,即便后面计算出现错误也可以通过CP重新计算。
Flink的CheckPoint也是容错机制(是状态一致性检查点),因为Flink的算子大部分都是有状态的,所以在某个时刻所有算子都完成了同一个任务时,进行一个快照,此时则是一个CheckPoint,其中涉及到了一个barrier(栅栏)的概念来实现快照时数据的混乱以及系统的暂停。

一个完整的快照包含=Source状态+算子状态+Sink事务/两次提交机制


2、单数据源快照流程

流程:
— 图1:首先由图看出数据源此时状态是数据4,此时由JobManager发送栅栏到数据中,随数据流动(特殊的一条数据),当栅栏到达source时则保存source的状态到存储系统中(HDFS、DB等)。
— 图2:栅栏经过Source之后准备进入SUM_even和SUM_odd两个算子,此处栅栏到达到算子,则对算子保存当前状态到存储器中。
— 图3:算子状态保存完毕,栅栏则返回给JobManager,此时JobManager形成映射图,并保存CheckPoint ID (栅栏ID)
Sink对外输出数据,也需要控制其发送的情况,保证状态一致性,其中包含两个策略:① 事务输入 ② 两次提交策略

在这里插入图片描述


3、并行数据源快照 流程

由图可知两个数据源并行发送数据
流程:
– 图一 、也是JM发送我们的栅栏,当栅栏到达我们的Source时,对状态进行保存,也就是状态4,3.
– 图二、我们的栅栏跟随数据流向算子,算子SUM_even需要接收到Source1的栅栏和Source2的栅栏都接受到后,才能对自己本身状态进行一个保存,如图二,算子状态分别为8,8。
– 图三、表现得是一种特殊情况,就是当我们的Source1的栅栏已经到达算子,但我们的Source2的栅栏处理慢,此时Source1发出数据5,导致数据5到Source2的栅栏前面,一旦算子5处理后在进行保存状态,会导致算子的状态不一致,故此会将数据5放入缓存区中,等我们的算子接收到Source2的栅栏保存完状态后在进行处理数据。(算子与算子之间保存状态不需要等待,在多个数据源的情况下,算子需要等待每个数据源的快照到达,才能对状态保存)

在这里插入图片描述


  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:08:12  更:2022-03-06 13:08:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:16:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码