SavePoint。。。需要记忆吗。。
时间: 2023-06-24 21:08:55 浏览: 52
SavePoint通常指的是游戏中的存档点或者是编程中的程序运行中的检查点。对于游戏中的存档点,需要将当前游戏的状态信息保存下来,以便之后可以重新加载这个状态并继续游戏。对于编程中的程序运行中的检查点,也需要将当前程序的状态信息保存下来,以便之后可以回到该状态重新开始运行程序。因此,SavePoint需要记忆以便在之后可以恢复到之前的状态。
相关问题
Savepoint 作为实时任务的全局镜像,其在底层使用的代码和Checkpoint的代码是一样的。。。怎么记忆
Savepoint 和 Checkpoint 的本质区别在于它们的使用方式和目的不同。Checkpoint 用于容错和恢复,而 Savepoint 则是用于在任务运行时对状态进行一次全局快照,以便后续能够重启应用程序并从该状态开始执行。因此,Savepoint 不仅需要保存应用程序的运行状态,还需要保存应用程序的元数据信息,以便恢复应用程序时能够正确地初始化应用程序的状态。
在底层实现上,Savepoint 和 Checkpoint 的代码确实有很多相似之处,因为它们都需要对应用程序的状态进行一次全局快照,并将该状态保存到外部存储介质中。但是,它们的实现细节和使用方式还是有很大的区别的。因此,在记忆时,我们可以将 Savepoint 和 Checkpoint 看作是两种不同的技术,它们的区别在于它们的使用方式和目的不同,而不是在于它们的底层实现上的差异。
SavePoint Savepoint 作为实时任务的全局镜像,其在底层使用的代码和Checkpoint的代码是一样的 Savepoint 是依据 Flink checkpointing 机制所创建的流作业执行状态的一致镜像; Checkpoint 的主要目的是为意外失败的作业提供恢复机制(如 tm/jm 进程挂了)。 Checkpoint 的生命周期由 Flink 管理,即 Flink 创建,管理和删除 Checkpoint - 无需用户交 互。 Savepoint 由用户创建,拥有和删除。 他们的用例是计划的,手动备份和恢复。 Savepoint 应用场景,升级 Flink 版本,调整用户逻辑,改变并行度,以及进行红蓝部署等。 Savepoint 更多地关注可移植性 Savepoint触发方式触发方式目前有三种 使用 flink savepoint 命令触发 Savepoint,其是在程序运行期间触发 savepoint。 使用 flink cancel -s 命令,取消作业时,并触发 Savepoint。 使用 Rest API 触发 Savepoint,格式为:*/jobs/:jobid /savepoints* Savepoint注意点 由于 Savepoint 是程序的全局状态,对于某些状态很大的实时任务,当我们触发 Savepoint,可能会对运行着的实时任务产生影响,个人建议如果对于状态过大的实时任务, 触发 Savepoint 的时间,不要太过频繁。根据状态的大小,适当的设置触发时间。 当我们从 Savepoint 进行恢复时,需要检查这次 Savepoint 目录文件是否可用。可能存在你 上次触发 Savepoint 没有成功,导致 HDFS 目录上面 Savepoint 文件不可用或者缺少数据文 件等,这种情况下,如果在指定损坏的 Savepoint 的状态目录进行状态恢复,任务会启动不 起来。。。。怎么记忆。。。
可以把 Savepoint 理解为 Flink 程序的全局状态镜像,它使用的底层代码和 Checkpoint 是一样的。Checkpoint 主要是为了提供作业意外失败时的恢复机制,而 Savepoint 则更多地关注程序的可移植性,可以用于升级 Flink 版本、调整用户逻辑、改变并行度、进行红蓝部署等场景。Savepoint 的触发方式有三种,可以使用 flink savepoint 命令、flink cancel -s 命令或 Rest API 进行触发。但是需要注意,对于状态较大的实时任务,过于频繁地触发 Savepoint 可能会影响任务的正常运行,建议根据状态大小适当设置触发时间。同时,在从 Savepoint 进行恢复时,需要检查 Savepoint 目录文件是否可用,避免因缺少数据文件等原因导致任务无法启动。