Flink的checkpoint与savepoint的区别是什么-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

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的区别是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享标题:Flink的checkpoint与savepoint的区别是什么
分享链接:http://kswsj.cn/article/goseod.html

其他资讯