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 的状态目录进行状态恢复,任务会启动不 起来。。。。怎么记忆。。。
时间: 2023-06-24 10:08:28 浏览: 76
可以把 Savepoint 理解为 Flink 程序的全局状态镜像,它使用的底层代码和 Checkpoint 是一样的。Checkpoint 主要是为了提供作业意外失败时的恢复机制,而 Savepoint 则更多地关注程序的可移植性,可以用于升级 Flink 版本、调整用户逻辑、改变并行度、进行红蓝部署等场景。Savepoint 的触发方式有三种,可以使用 flink savepoint 命令、flink cancel -s 命令或 Rest API 进行触发。但是需要注意,对于状态较大的实时任务,过于频繁地触发 Savepoint 可能会影响任务的正常运行,建议根据状态大小适当设置触发时间。同时,在从 Savepoint 进行恢复时,需要检查 Savepoint 目录文件是否可用,避免因缺少数据文件等原因导致任务无法启动。
相关问题
Savepoint 作为实时任务的全局镜像,其在底层使用的代码和Checkpoint的代码是一样的
实际上,Savepoint 和 Checkpoint 在底层使用的代码并不完全相同。虽然它们都是用来创建系统的快照以便后续恢复使用的,但是它们在实现方式上有些许不同。
Checkpoint 通常是用来在发生故障时备份整个应用程序的状态。它会将应用程序的状态写入到持久化存储介质(如磁盘),以便在应用程序重新启动时可以恢复到之前的状态。
而 Savepoint 则是用来备份流式应用程序的状态。它会将应用程序的状态写入到分布式存储介质(如分布式文件系统),以便在应用程序重新启动时可以从之前的状态恢复并继续处理数据流。与 Checkpoint 不同,Savepoint 还支持在应用程序运行时手动创建和恢复多个快照,以便在需要时可以选择从特定的快照中恢复。
因此,虽然 Savepoint 和 Checkpoint 在某些方面是相似的,但它们在底层的实现方式和使用场景上存在一些差异。
Savepoint 作为实时任务的全局镜像,其在底层使用的代码和Checkpoint的代码是一样的。。怎么记
Savepoint 和 Checkpoint 都是 Flink 中的容错机制,它们的实现代码确实有很多相似之处。在 Flink 中,Checkpoint 是将状态信息异步持久化到分布式文件系统中,以便在发生故障时恢复任务的状态。而 Savepoint 则是将任务的状态信息同步地保存到分布式文件系统中,它可以用于在应用程序运行时手动保存任务的状态,以便在重启应用程序时重新加载该状态。
在底层代码实现上,Savepoint 和 Checkpoint 都使用了 Flink 的状态后端机制,将状态信息保存到分布式文件系统中。它们都需要对状态信息进行序列化和反序列化,以便在保存和恢复状态信息时使用。此外,它们还需要在分布式环境下保证数据的一致性和可靠性,以避免数据丢失或者重复。
因此,可以说 Savepoint 和 Checkpoint 的代码实现非常相似,都是基于 Flink 的状态后端机制实现的。