Flink笔记(十九):Flink 从 Checkpoint 中恢复数据

Valarie ·
更新时间:2024-11-13
· 548 次阅读

接上文:Flink笔记(十八):Flink 之 StateBackend 介绍 & 使用,本文介绍 Flink 从 Checkpoint 中恢复数据。

当 Flink 任务提交后,只有遇到 1.程序错误2.人为 Cancel掉,任务就会停止。

1. 任务异常,设置保存 CheckPoint 中途数据不被删除

       如果现在有个任务已经执行很长时间,这样就突然停止了,那么中间过程处理结果全丢了,重启后重跑岂不很浪费时间。这样显然是不行的,所以我们可以通过以下设置来保存任务处理中途的 CheckPoint 数据的(如果不设置,任务停止后CheckPoint数据会自动删除)。

//系统异常退出或人为 Cancel 掉,不删除checkpoint数据 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION); 2.从 CheckPoint 中恢复数据(Web页面操作) 2.1 测试数据输入

在这里插入图片描述

2.2 计算结果

        当前集群,共两个 TaskManager 。两个 TaskManager 计算结果为(Hadoop,2)(Flink,3)
在这里插入图片描述
在这里插入图片描述

2.3.人为 Cancel 任务

此时,人为 Cancel 掉该任务。
在这里插入图片描述

2.4 从 CheckPoint 中恢复数据

       checkPoint 路径:hdfs://192.168.204.210:9000/StateBackend/31f48d20d48f0bec256e6b4d24553b8a/chk-536,参数填写完成之后,执行Submit提交。
在这里插入图片描述

2.5 再次测试数据输入

在这里插入图片描述

2.5 再次查看计算结果

       人为 Cancel 任务前,两个 TaskManager 计算结果为(Hadoop,2)(Flink,3)。恢复数据后,输入 Fink、Flink、Hadoop后。

       数据恢复OK 的话,计算结果应该为(Hadoop,3)(Flink,5)。如下图所示:
在这里插入图片描述
在这里插入图片描述

2.6 至此,数据恢复OK

       数据恢复OK

3.从 CheckPoint 中恢复数据(命令行操作)

       命令行操作恢复数据,使用-s 参数。请参考:Flink笔记(三):Flink 提交任务的两种方式。

       推荐使用 Web 端页面提交。命令行操作,此处不再做赘述。

Flink 从 Checkpoint 中恢复数据,介绍到此为止

文章都是博主用心编写,如果本文对你有所帮助,那就给我点个赞呗 ^ _ ^

End


作者:扛麻袋的少年



checkpoint 复数 数据 flink

需要 登录 后方可回复, 如果你还没有账号请 注册新账号