什么是checkpoint?

checkpoint 则表示了一个 Flink Job ,在一个特定时刻的一份全局状态状态快照,即包含了一个 job 下 所有

task/operator 某时刻的状态。

问题九、使用checkpoint(检查点)的作用?

使用Checkpoint提高程序的可靠性

用户可以根据程序里面的配置将checkpoint打开,给定一个时间间隔后,框架会按照时间间隔给程序的状态进行备份。

当发生故障时,Flink会将所有Task的状态一起恢复到Checkpoint的状态。从那个位置开始重新执行。

Flink也提供了多种正确性的保障,包括:

AT LEAST ONCE

Exactly once

备份为保存在State中的程序状态数据

Flink也提供了一套机制,允许把这些状态放到内存当中。做Checkpoint 的时候,由Flink去完成恢复。

从已停止作业的运行状态中恢复

当组件升级的时候,需要停止当前作业。这个时候需要从之前停止的作业当中恢复,Flink提供了2种机制恢复作业:

Savepoint(保存点):是一种特殊的checkpoint,只不过不像checkpoint定期的从系统中去触发的,它是用户通过命令触发,存储格式和checkpoint也是不相同的,

会将数据按照一个标准的格式存储,不管配置什么样,Flink都会从这个checkpoint 恢复,是用来做版本升级一个非常好的工具。

External Checkpoint:对已有checkpoint的一种扩展,就是说做完一次内部的一次Checkpoint后,还会在用户给定的一个目录中,多

数据恢复

checkpoint
保存
如果在控制台cancel任务,checkpoint都会被清空。所以不要cancel任务,而是停止集群,这样checkpoint目录的数据还会保留着。

$ tree
.
├── 21a531af31f6aeddff96f375abd60493
│ ├── chk-14
│ │ ├── 0fa3db43-a58b-47d7-8aa5-67d66f14d96d
│ │ └── _metadata
│ ├── chk-15
│ ├── shared
│ └── taskowned
├── 79362a5fc98b3d62c3d53e4dbae8681f
│ ├── chk-2
│ │ ├── 004e95c6-d381-494b-9e7e-65afacbfe85d
│ │ └── _metadata
│ ├── chk-3
│ ├── shared
│ └── taskowned
├── 7e04c0ae4ab086e497dcdbb81a54a7c1
│ ├── chk-3
│ │ ├── 2e79396f-1162-4f57-a0ad-8e0799031db7
│ │ └── _metadata
│ ├── chk-4
│ ├── shared
│ └── taskowned
└── 99c68672dec699ea9a85231a5ca472fa
├── chk-2
│ ├── _metadata
│ └── a6d866d8-dec1-4280-98ff-d167423b8f4e
├── chk-3
├── shared
└── taskowned

20 directories, 8 files
恢复
$ flink run -s /tmp/flink/checkpoints/7e04c0ae4ab086e497dcdbb81a54a7c1/chk-3/_metadata -c com.henshao.flink.StatefulSource target/flink-learning-1.0-SNAPSHOT.jar
从控制台可以看到任务是从7e04c0ae4ab086e497dcdbb81a54a7c1这个checkpoint恢复的。

从日志可以看出offset不是0开始的,而是从上次停止的时候开始的。

savepoint
保存

$ flink savepoint 21a531af31f6aeddff96f375abd60493 /tmp/flink/savepoints/
Triggering savepoint for job 21a531af31f6aeddff96f375abd60493.
Waiting for response...
Savepoint completed. Path: file:/tmp/flink/savepoints/savepoint-21a531-ea92d4b06909
You can resume your program from this savepoint with the run command.

恢复

$ flink run -s /tmp/flink/savepoints/savepoint-21a531-ea92d4b06909 -c com.henshao.flink.StatefulSource target/flink-learning-1.0-SNAPSHOT.jar
从控制台可以看到任务是从savepoint-21a531-ea92d4b06909恢复的。

Flink checkpoint机制以及恢复相关推荐

  1. Flink CheckPoint机制 学习 测试 使用FsStateBackend状态后端 将checkpoint恢复到中断处

    Flink CheckPoint机制 1.实验目的 目的 开启一个Flink程序,使用hdfs做状态后端,手动取消job后,再次恢复job测试,观察程序是否能恢复到检查点,继续读取并处理数据: 实验原 ...

  2. Flink Checkpoint 机制:如何保证 barrier 和数据之间不乱序?

    Flink Checkpoint 机制:如何保证 barrier 和数据之间不乱序? 1 前言 1.1 什么是 state? 要说 checkpoint,首先要从 state 聊起.之前有被问到对于 ...

  3. Flink Checkpoint机制分析

    原创作品,转载请标明:http://blog.csdn.net/xiejingfa/article/details/105439802 可靠性是分布式系统实现必须考虑的因素之一.Flink基于Chan ...

  4. Flink CheckPoint机制简介

    概述  Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator/task的状态来生成快照,从而将这些状态数据定期持久化存储下来,当Fli ...

  5. Flink checkpoint机制

    目录 1. checkpoint的用途 2. checkpoint的生成机制 3. checkpoint的状态存储 4. job的重启策略 5. 参考资料 可保证Flink集群在某个算子因为某些原因( ...

  6. flink checkpoint 恢复_Flink解析 | Apache Flink结合Kafka构建端到端的ExactlyOnce处理

    周凯波(宝牛) 阿里巴巴技术专家,四川大学硕士,2010年毕业后加入阿里搜索事业部,从事搜索离线平台的研发工作,参与将搜索后台数据处理架构从MapReduce到Flink的重构.目前在阿里计算平台事业 ...

  7. Flink——Flink CheckPoint之两阶段提交协议(Two-Phase Commit Protocol)

    文章目录 两阶段提交协议 1. 两阶段提交的前提条件 2. 两阶段提交的基本算法 a. 第一阶段(提交请求阶段) b. 第二阶段(提交执行阶段) 3. 两阶段提交的缺点 Flink-两阶段提交协议 1 ...

  8. flink checkpoint 恢复_Flink断点恢复机制

    作为流式计算,Flink通过checkpoint机制和kafka的可回溯性来保证作业在failover时不丢失状态. 作为生产环境的flink,我们期待做到快速failover.弹性扩缩容和平滑迁移, ...

  9. 2021年大数据Flink(二十七):Flink 容错机制 Checkpoint

    目录 Flink 容错机制 Checkpoint State Vs Checkpoint Checkpoint执行流程 简单流程 复杂流程 State状态后端/State存储介质 MemStateBa ...

最新文章

  1. STM32固件库的安装与介绍
  2. faster_rcnn c++版本的 caffe 封装,动态库(2)
  3. (转)标准I/O缓冲:全缓冲、行缓冲、无缓冲 .
  4. Android 使用intent.putExtra实现Activity之间的参数传递
  5. dos命令行说adb不是系统命令
  6. #undef 标识符
  7. ev10aq190a采集电路图_EV10AQ190A数模转换器
  8. “用户、组或角色'XXX'在当前数据库中已存在”问题
  9. 您的Android版本不兼容,android – 您的设备与某些设备的此版本不兼容
  10. 《RabbitMQ 实战指南》第五章 RabbitMQ 进阶(下)
  11. Vijos P1304回文数
  12. (JavaScript)Mixin 模式
  13. matlab 代码 经典例题,MATLAB程序设计及经典例题解析3
  14. 洛谷P【P5708】三角形面积java写法
  15. python自动化测试面试题大全带答案_Python自动化测试笔试面试题精选
  16. java编程基础学习需要多久的时间
  17. Oracle表空间扩展
  18. unity项目打开是紫色
  19. 扬帆志远:shopee跨境电商如何补单?
  20. iOS链接跳转到App

热门文章

  1. virtualbox给CentOS7虚拟机磁盘扩容
  2. java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot
  3. 【重磅发布】优维EasyOps5.0 以“开放+赋能”打造新一代DevOps及运维平台
  4. 大众速腾信息公开案11月10日开庭
  5. R语言-多元统计学分析课程报告
  6. 数据库搭建范式——BC范式
  7. JavaScript实现的简单烟花特效代码1.15
  8. 012_SSS_ Improving Diffusion Model Efficiency Through Patching
  9. Error relaunching VirtualBox VM process:5错误解决
  10. windows 查找目录下文件中包含某个字符的文件