Flink实践Savepoint使用示例详解

什么是 savepoint,为什么要使用 savepoint ?,保障 flink 作业在 配置迭代、flink 版本升级、蓝绿部署中的数据一致性,提高容错、降低恢复时间;,在此之前引入几个概念:,Flink 通过状态快照实现容错处理,Flink实践Savepoint使用示例详解,注1:自 1.13 版本之后,设置 Working State 和 设置 Snapshot State 拆离成了两个接口,便于读者更易于理解;,注2:一般默认使用 FsStateBackend,运行时状态放在堆中保障性能,快照备份时数据存于 Hdfs 保障容错性;当业务有大状态的 flink 作业存在时,可以通过配置化的方式将用户作业的状态后端设置为 RocksDBSateBackend。,Alignment checkpoint,Flink实践Savepoint使用示例详解,Unaligment checkpoint,Flink实践Savepoint使用示例详解,未对齐的 checkpoint 确保障碍物尽快到达接收器。,注:一般默认使用 Alignment checkpoint;当出现被压时,一般优先采用,1. 优化逻辑 2. 增加并发能力的方式进行处理;,Checkpoint 使 Flink 的状态具有良好的容错性,通过 checkpoint 机制,Flink 可以对作业的状态和计算位置进行恢复。,Savepoint 是依据 Flink checkpointing 机制所创建的流作业执行状态的一致镜像;,除去这些概念上的差异,Checkpoint 和 Savepoint 的当前实现基本上使用相同的代码并生成相同的格式(rocksDB 增量 checkpoint 除外,未来可能有更多类似的实现),触发 savepoint 保留到 hdfs, 在重新调度作业时,提供给用户选择即可。,关键点:执行 savepoint 需要指定 jobId,因此在设计数据平台的元数据时,需要保留 jobId 数据。,当流处理应用程序发生错误的时候,结果可能会产生丢失或者重复。Flink 根据你为应用程序和集群的配置,可以产生以下结果:,Flink 通过回退和重新发送 source 数据流从故障中恢复,当理想情况被描述为精确一次时,这并不意味着每个事件都将被精确一次处理。相反,这意味着 每一个事件都会影响 Flink 管理的状态精确一次。,Barrier 只有在需要提供精确一次的语义保证时需要进行对齐(Barrier alignment)。如果不需要这种语义,可以通过配置 CheckpointingMode.AT_LEAST_ONCE 关闭 Barrier 对齐来提高性能。,为了实现端到端的精确一次,以便 sources 中的每个事件都仅精确一次对 sinks 生效,必须满足以下条件:,以上就是Flink实践Savepoint使用示例详解的详细内容,更多关于Flink Savepoint使用的资料请关注其它相关文章!
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册