千家信息网

Flink的checkpoint与savepoint的区别是什么

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍"Flink的checkpoint与savepoint的区别是什么",在日常操作中,相信很多人在Flink的checkpoint与savepoint的区别是什么问题上存在疑惑,小编查阅
千家信息网最后更新 2024年11月28日Flink的checkpoint与savepoint的区别是什么

这篇文章主要介绍"Flink的checkpoint与savepoint的区别是什么",在日常操作中,相信很多人在Flink的checkpoint与savepoint的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Flink的checkpoint与savepoint的区别是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. checkpoint

checkpoint 用于flink应用发生故障时从checkpoint中进行恢复,例如当应用发生异常时崩溃,此时JVM不会关掉,而是尝试从检查点进行重启,可以自定义应用的重启策略。当重启失败时,而又想从检查点保存的状态接着运行,执行

flink run   -s  hdfs://master:8020/flink/checkpoint03/s1/savepoint-0b3f0b-ed13f369aadc -c flink.ceshi    /opt/flink_path/sbt-solr-assembly.jar

不同的状态后端,其算子状态和检查点的保存位置都不相同。

2. savepoint

Savepoint(保存点):是一种特殊的checkpoint,只不过不像checkpoint定期的从系统中去触发的,它是用户通过命令触发,存储格式和checkpoint也是不相同的,会将数据按照一个标准的格式存储,不管配置什么样,Flink都会从这个checkpoint 恢复

Savepoint 是用户以手工命令的方式触发 Checkpoint,并将结果持久化到指定的存储路径中,其主要目的是帮助用户在升级和维护集群过程中保存系统中的状态数据,避免因为停机运维或者升级应用等正常终止应用的操作而导致系统无法恢复到原有的计算状态的情况,从而无法实现从端到端的 Exactly-Once 语义保证。

1)配置 Savepoints 的存储路径

在 flink-conf.yaml 中配置 SavePoint 存储的位置,设置后,如果要创建指定 Job 的 SavePoint,可以不用在手动执行命令时指定 SavePoint 的位置。

state.savepoints.dir: hdfs:/hadoop101:9000/savepoints

2)在代码中设置算子ID

  为了能够在作业的不同版本之间以及 Flink 的不同版本之间顺利升级,强烈推荐通过手动给算子赋予 ID,这些 ID 将用于确定每一个算子的状态范围。如果不手动给各算子指定 ID,则会由 Flink 自动给每个算子生成一个 ID,而这些自动生成的 ID 依赖于程序的结构,并且对代码的更改时很敏感的。因此,强烈建议手动设置 ID。

 stream.flatMap(_.split(" "))      .uid("flapMap-001")  // 每个算子都指定一个uid,便于从保存点中恢复出算子的状态      .map((_, 1))      .uid("map=001")      .keyBy(0)      .sum(1)      .uid("sum-001")      .print()

3)触发 SavePoint

//先启动Job[root@hadoop101 bin]# ./flink run -c com.bjsxt.flink.state.TestSavepoints -d /home/Flink-Demo-1.0-SNAPSHOT.jar//手动触发SavePoint,然后取消作业[root@hadoop101 bin]# ./flink savepoint 6ecb8cfda5a5200016ca6b01260b94ce[root@hadoop101 bin]# ./flink cancel 6ecb8cfda5a5200016ca6b01260b94ce

4)从保存点中恢复作业

flink run \-s hdfs://hadoop101:9000/savepoints/savepoint-6ecb8c-e56ccb88576a \-c com.bjsxt.flink.state.TestSavepoints \-d /home/Flink-Demo-1.0-SNAPSHOT.jar

到此,关于"Flink的checkpoint与savepoint的区别是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

算子 状态 手动 存储 应用 学习 不同 位置 命令 检查点 用户 系统 作业 升级 帮助 检查 配置 相同 之间 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sql数据库默认的用户 上海质量网络技术服务比较 网络安全工程师个人发展路径 学校电脑怎么备份数据库 数据库怎么在表中添加一列 语音对讲软件开发新报价相关推荐 打印机显示设备正在连接服务器 数据库表的命名 服务器如何查看磁盘管理 数据库应用系统开发技术 公司服务器连接不了电脑 云南学习软件开发排名 云锁服务器怎么设置登录防护 软件开发公司项目定位 国外网络安全系统 北京交通银行总行软件开发 绝地求生2手游哪个服务器稳定 難過创造最佳服务器 服务器推送数据到前端 qt 服务器安全防护 专家年薪 上饶稳定服务器哪家靠谱 未注明软件开发合同可以转包吗 数据库表的命名 工业无线网络技术与应用 小程序租用服务器费用账务处理 怎么选服务器系统版本 flask 服务器部署 北航软件开发商 饥荒服务器配置失效 监控数据数据库连接
0