深入浅出Flink 07 之 SavePoint

SavePoint是一个重量级的Checkpoint,你可以把它当做在某个时间点程序状态全局镜像,以后程序在进
行升级,或者修改并发度等情况,还能从保存的状态位继续启动恢复。可以保存数据源offset,
operator操作状态等信息,可以从应用在过去任意做了savepoint的时刻开始继续消费。

Checkpint和SavePoint 概念:
Checkpoint 是 自动容错机制 ,
Savepoint 程序全局状态镜像 。
 目的: Checkpoint 是程序自动容错,快速恢复 。
 Savepoint是 程序修改后继续从状态恢复,程序升级 等。
 用户交互:Checkpoint 是 Flink 系统行为 。
 Savepoint是用户触发。 状态文件保留策略:
 Checkpoint默认程序删除,可以设置CheckpointConfig中的参数进行保留 。
 Savepoint会一直保存,除非用户删除 。

SavePoint
用户手动执行,是指向Checkpoint的指针,不会过期,在集群升级/代码迁移等情况下使用。
注意:为了能够在作业的不同版本之间以及 Flink 的不同版本之间顺利升级,强烈推荐程序员通过
uid(String) 方法手动的给算子赋予 ID,这些 ID 将用于确定每一个算子的状态范围。如果不手动给各算
子指定 ID,则会由 Flink 自动给每个算子生成一个 ID。只要这些 ID 没有改变就能从保存点
(savepoint)将程序恢复回来。而这些自动生成的 ID 依赖于程序的结构,并且对代码的更改是很敏感
的。因此,强烈建议用户手动的设置 ID。
savepoint的使用

1:在flink-conf.yaml中配置Savepoint存储位置 不是必须设置,但是设置后,后面创建指定Job的Savepoint时,可以不用在手动执行命令时指定 Savepoint的位置 state.savepoints.dir: hdfs://namenode:9000/flink/savepoints
2:触发一个savepoint【直接触发或者在cancel的时候触发】 
 停止程序:bin/flink cancel -s [targetDirectory] jobId [-yid yarnAppId]【针对on yarn 模式需要指定-yid参数】
3:从指定的savepoint启动
job bin/flink run -s savepointPath [runArgs]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值