Flink 容错机制 Checkpoint 生成与恢复流程
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 容错机制 Checkpoint 生成与恢复流程相关的知识,希望对你有一定的参考价值。
传送门:Flink 系统性学习笔记
Flink 是一个分布式数据处理系统,因此必须有一套机制处理各种故障,例如进程被强制杀掉、机器故障和网络连接中断。任务都是在本地维护状态,所以 Flink 要确保状态不丢以及不错。
在本节中,我们将介绍 Flink 的检查点是如何恢复和生成的,看它们是如何保证精确一次 Exactly-Once 语义的状态一致性。
1. 一致性检查点
Flink 的故障恢复机制的核心需要基于应用状态的一致性检查点。有状态流应用的一致性检查点是在所有任务处理完等量的原始输入后对全部任务状态进行的一个拷贝,注意这里需要处理等量原始输入。一致性检查点过程可以通过一个简单算法步骤来解释:
- 暂停输入:暂停接收所有输入流,即不再接收新数据的输入
- 处理已输入数据:等待已经流入系统的数据被完全处理,即所有任务已经处理完所输入数据。这时候每个任务都会处理等量的原始输入。
- 状态拷贝:将所有任务的状态拷贝到远程持久存储,生成检查点。在所有任务完成拷贝工作后,检查点生成完毕
- 恢复输入:恢复所有数据流的接收
需要注意的是 Flink 实现的并不是这种简单的机制,而是一种更加复杂的检查点算法。下图展示了一个简单应用中的一致性检查点:
以上是关于Flink 容错机制 Checkpoint 生成与恢复流程的主要内容,如果未能解决你的问题,请参考以下文章