栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Flink checkpoint机制以及恢复

Flink checkpoint机制以及恢复

什么是checkpoint?

checkpoint 则表示了一个 Flink Job ,在一个特定时刻的一份全局状态状态快照,即包含了一个 job 下 所有

task/operator 某时刻的状态。

问题九、使用checkpoint(检查点)的作用?

使用Checkpoint提高程序的可靠性

用户可以根据程序里面的配置将checkpoint打开,给定一个时间间隔后,框架会按照时间间隔给程序的状态进行备份。

当发生故障时,Flink会将所有Task的状态一起恢复到Checkpoint的状态。从那个位置开始重新执行。

Flink也提供了多种正确性的保障,包括:

AT LEAST ONCE

Exactly once

备份为保存在State中的程序状态数据

Flink也提供了一套机制,允许把这些状态放到内存当中。做Checkpoint 的时候,由Flink去完成恢复。

从已停止作业的运行状态中恢复

当组件升级的时候,需要停止当前作业。这个时候需要从之前停止的作业当中恢复,Flink提供了2种机制恢复作业:

Savepoint(保存点):是一种特殊的checkpoint,只不过不像checkpoint定期的从系统中去触发的,它是用户通过命令触发,存储格式和checkpoint也是不相同的,

会将数据按照一个标准的格式存储,不管配置什么样,Flink都会从这个checkpoint 恢复,是用来做版本升级一个非常好的工具。

External Checkpoint:对已有checkpoint的一种扩展,就是说做完一次内部的一次Checkpoint后,还会在用户给定的一个目录中,多

数据恢复

checkpoint
保存
如果在控制台cancel任务,checkpoint都会被清空。所以不要cancel任务,而是停止集群,这样checkpoint目录的数据还会保留着。

$ tree
.
├── 21a531af31f6aeddff96f375abd60493
│ ├── chk-14
│ │ ├── 0fa3db43-a58b-47d7-8aa5-67d66f14d96d
│ │ └── _metadata
│ ├── chk-15
│ ├── shared
│ └── taskowned
├── 79362a5fc98b3d62c3d53e4dbae8681f
│ ├── chk-2
│ │ ├── 004e95c6-d381-494b-9e7e-65afacbfe85d
│ │ └── _metadata
│ ├── chk-3
│ ├── shared
│ └── taskowned
├── 7e04c0ae4ab086e497dcdbb81a54a7c1
│ ├── chk-3
│ │ ├── 2e79396f-1162-4f57-a0ad-8e0799031db7
│ │ └── _metadata
│ ├── chk-4
│ ├── shared
│ └── taskowned
└── 99c68672dec699ea9a85231a5ca472fa
├── chk-2
│ ├── _metadata
│ └── a6d866d8-dec1-4280-98ff-d167423b8f4e
├── chk-3
├── shared
└── taskowned

20 directories, 8 files
恢复
$ flink run -s /tmp/flink/checkpoints/7e04c0ae4ab086e497dcdbb81a54a7c1/chk-3/_metadata -c com.henshao.flink.StatefulSource target/flink-learning-1.0-SNAPSHOT.jar
从控制台可以看到任务是从7e04c0ae4ab086e497dcdbb81a54a7c1这个checkpoint恢复的。

从日志可以看出offset不是0开始的,而是从上次停止的时候开始的。

savepoint
保存

$ flink savepoint 21a531af31f6aeddff96f375abd60493 /tmp/flink/savepoints/                                  
Triggering savepoint for job 21a531af31f6aeddff96f375abd60493.
Waiting for response...
Savepoint completed. Path: file:/tmp/flink/savepoints/savepoint-21a531-ea92d4b06909
You can resume your program from this savepoint with the run command.

恢复

$ flink run -s /tmp/flink/savepoints/savepoint-21a531-ea92d4b06909 -c com.henshao.flink.StatefulSource target/flink-learning-1.0-SNAPSHOT.jar
从控制台可以看到任务是从savepoint-21a531-ea92d4b06909恢复的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号