zoukankan      html  css  js  c++  java
  • Flink的CheckPoint

    Checkpoint  

    checkpoint是Flink容错的核心机制。它可以定期的将各个Operator处理的数据进行快照存储(Snapshot)。

    如果Flink程序出现宕机,可以重新从这些快照中恢复数据。

    Flink容错机制的核心就是持续创建分布式数据流及其状态的一致快照。Flink的checkpoint是通过分布式快照实现的,

    所以在flink中这两个词是一个意思。

    checkpoint用来保证任务的错误恢复。任务失败可以从最新的checkpoint恢复。

    checkpoint机制需要一个可靠的可以回放数据的数据源(kafka,RabbitMQ,HDFS...)和一个存放state的持久存储(hdfs,S3)

    1、checkpointConfig

    通过调用StreamExecutionEnvironment.enableCheckpointing(internal,mode) 启用checkpoint 。

    internal 默认是 -1,表示checkpoint不开启,mode默认是EXACTLY_ONCE模式。

    可设置checkpoint timeout,超过这个时间 checkpoint 没有成功,checkpoint 终止。默认 10分钟。

    可设置 chekpoint 失败任务是否任务也失败,默认是true

    可设置同时进行的checkpoint数量,默认是1.

    2、barrier

    将barrier插入到数据流中,作为数据流的一部分和数据一起向下流动。Barrier不会干扰正常数据,数据流严格有序。

    一个barrier把数据流分割成两部分:一部分进入到当前快照,另一部分进入到下一个快照。

    每一个barrier都带有快照ID,并且barrier之前的数据都进入了此快照。Barrier不会干扰数据流处理,所以非常轻量。

    多个不同快照的多个barrier会在流中同时出现,即多个快照可能同时创建。

    Barrier在数据源端插入,当 snapshot 的barrier 插入后,系统会记录当前snashot 位置值n (用Sn表示。)

    例如:在 Apache Kafka中,这个变量表示某个分区中最后一条数据的偏移量。这个位置值Sn 会被发送到一个称为 checkpoint coordinator的模块。

    然后 barrier 继续向下移动,当一个 operator 从其输入流接收到所有标识 snapshot n 的 barrier时,它会向其所有输入流插入一个标识 snapshot n 的 

    barrier。当sink operator (DAG流的终点) 从其输入流接收到所有 barrier n时,它向 the checkpoint coordinator 确认 snapshot n 已完成。

    当所有 sink 都确认了这个快照,快照就被标识为完成。

    3、

    3.1 如何触发 checkpoint?

    3.2 异步储存快照

  • 相关阅读:
    module.exports = $; $ is not defined
    npm run build 时 报 __webpack_public_path__ = window.webpackPublicPath; 中的windows未定义
    TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
    windows package.json设置多个环境变量
    点击劫持ClickJacking
    判断数组的方法/判断JS数据类型的四种方法
    时间操作
    Ado调用存储过程
    layui表格增删改查与上传图片+Api
    layui表单与上传图片
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/12248738.html
Copyright © 2011-2022 走看看