
# Flink作业重启后，如何判断是否可以从checkpoint恢复
#### 什么是从checkpoint恢复？
Flink Checkpoint 是一种容错恢复机制。这种机制保证了实时程序运行时，遇到异常或者机器问题时能够进行自我恢复。
 #### 从checkpoint恢复的原则
- 通常当作业执行失败、资源异常重启等非人为触发的异常场景时，支持从checkpoint恢复。
- 但是如果修改了作业的运算逻辑，作业的计算逻辑已发生更改，不支持从checkpoint恢复。
 
#### 应用场景
本文列举了一些常见的从checkpoint恢复的场景供您参考，如[表1]所示。
更多场景可以使用[从checkpoint恢复的原则]结合实际情况进行判断。
 表1从checkpoint恢复的常见场景 
| 场景                           | 是否支持恢复 | 说明                                                                                                                |
|:---|:---|:---|
| 调整或者增加并行数                    | 不支持    | 该操作修改了作业的并行数，即修改了作业的运行逻辑。                                                                                         |
| 修改Flink SQL语句、Flink Jar作业等操作 | 不支持    | 该操作修改了作业对资源的算法逻辑。 例如原有的算法的语句是执行加减运算，当前需要恢复的状态将算法的语句修改成为乘除取余的运算，是无法从checkpoint直接恢复的。 |
| 修改"静态流图"                     | 不支持    | 该操作修改了作业对资源的算法逻辑。                                                                                                 |
| 修改"单TM所占CU数"参数               | 支持     | 对计算资源的修改并没有影响到作业算法或算子的运行逻辑。                                                                                       |
| 作业运行异常或物理停电                  | 支持     | 未修改作业参数和算法逻辑。                                                                                                     |
   
#### 相关操作：怎样从checkpoint恢复作业
由于Flink Checkpoint和Savepoint生成机制及格式一致，因此可以通过Flink作业列表"操作"列中的"更多 \> 导入保存点"，导入OBS中最新成功的Checkpoint，并从中恢复。
1. 登录DLI管理控制台，选择"作业管理 \> Flink作业"。
2. 在对应Flink作业所在行，选择"操作 \> 导入保存点"。
3. 在导入保存点界面选择Checkpoint的OBS桶路径，Checkpoint保存路径为："桶名/jobs/checkpoint/作业id开头的目录"。单击"确定"完成导入操作。
4. 再次启动Flink作业，即从对应的检查点路径恢复作业。
 
