概述
错误恢复
在 Flink 作业的执行过程中,除正常执行的流程外,还有可能由于环境等原因导致各种类型的错误。
整体上来说,错误可能分为两大类:Task 执行出现错误或 Flink集群的 Master 出现错误。
由于错误不可避免,为了提高可用性,Flink 需要提供自动错误恢复机制来进行重试。
TASK执行错误
1. Restart-all,即直接重启所有的 Task。由于 Flink 提供了 Checkpoint 机制,因此当任务重启后可以直接从上次的Checkpoint 开始继续执行
2. Restart-individual,它只适用于 Task 之间没有数据传输的情况,这种情况下,只重启出错的任务
3. Restart-region 由于 Flink 的批作业没有 Checkpoint 机制,因此对于需要数据传输的作业,
直接重启所有 Task 会导致作业从头计算,从而导致一定的性能问题。
Flink 将 ExecutionGraph 中使用 Pipeline 方式传输数据的 Task 的子图叫做Region,Pipeline Region 会将Blocking 数据落地,可以直接读取仅需要重启Pipeline 边关联的task
![作业执行失败](https://i-blog.csdnimg.cn/blog_migrate/03a922f35be3b464c79eb3099442a8e5.png)