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

  • 相关阅读:
    unzip解压3G或者4G以上文件失败的解决方法
    zencart批量删除无图片产品
    zencart后台管理中选项名称和选项内容和属性控制页面出错解决办法 WARNING: An Error occurred, please refresh the page and try again
    在线随机密码生成工具
    zencart更改css按钮的宽度css buttons
    IE8"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"错误
    css改变背景透明度
    phpMyAdmin出现Fatal error: Maximum execution time of 300 seconds
    da面板修改SSH端口号
    原生js三级联动
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/12248738.html
Copyright © 2020-2023  润新知