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 异步储存快照

  • 相关阅读:
    Vue 获取URL链接后面的参数值
    Vue 跳转到指定页面,返回到上一页
    Vant 插件
    Vue 返回上一页,记住上一页的数据
    vue pc端支付宝支付
    Spring 中的事务
    数据库中锁与事务
    《产品方法论》 读书笔记
    设计模式之装饰者模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/12248738.html
Copyright © 2011-2022 走看看