Apache Flink 进阶(一):Runtime 核心机制剖析(11)

图7. Flink 中两种基本的调度策略 。 其中 Eager 调度适用于流作业 , 而Lazy From Source 适用于批作业 。

4. 错误恢复

在 Flink 作业的执行过程中 , 除正常执行的流程外 , 还有可能由于环境等原因导致各种类型的错误 。 整体上来说 , 错误可能分为两大类:Task 执行出现错误或 Flink 集群的 Master 出现错误 。 由于错误不可避免 , 为了提高可用性 , Flink 需要提供自动错误恢复机制来进行重试 。

对于第一类 Task 执行错误 , Flink 提供了多种不同的错误恢复策略 。 如图 8 所示 , 第一种策略是 Restart-all , 即直接重启所有的 Task 。 对于 Flink 的流任务 , 由于 Flink 提供了 Checkpoint 机制 , 因此当任务重启后可以直接从上次的 Checkpoint 开始继续执行 。 因此这种方式更适合于流作业 。 第二类错误恢复策略是 Restart-individual , 它只适用于 Task 之间没有数据传输的情况 。 这种情况下 , 我们可以直接重启出错的任务 。

推荐阅读