首页 > 其他分享 >Flink 容错机制 保存点和检查点

Flink 容错机制 保存点和检查点

时间:2023-07-26 19:12:01浏览次数:40  
标签:Checkpoint barrier Flink getCheckpointConfig 容错 检查点 env

Flink检查点常用配置:

//配置检查点
env.enableCheckpointing(180000); // 开启checkpoint 每180000ms 一次
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(50000);// 确认 checkpoints 之间的时间会进行 50000 ms
env.getCheckpointConfig().setCheckpointTimeout(600000); //设置checkpoint的超时时间 即一次checkpoint必须在该时间内完成 不然就丢弃
env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);//设置有且仅有一次模式 目前支持EXACTLY_ONCE/AT_LEAST_ONCE
env.getCheckpointConfig().setMaxConcurrentCheckpoints(1);// 设置并发checkpoint的数目
env.getCheckpointConfig().setCheckpointStorage("hdfs:///flink-checkpoints/oracle/AC_SUB_REGIST_INFO"); // 这个是存放到hdfs目录下
env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);// 开启在 job 中止后仍然保留的 externalizedcheckpoints
env.getCheckpointConfig().enableUnalignedCheckpoints();// 开启checkpoints

Checkpoint与State的关系

State 是 Checkpoint 所做的主要持久化备份的主要数据,而 Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作。

 Flink任务恢复,可以从Checkpoint或者savepoint进行实时任务数据恢复;

 Checkpoint 的实现算法

  • 基于 Chandy-Lamport 算法的分布式快照

  • 将检查点的保存和数据处理分开,不暂停整个应用

  • 检查点分界线(Checkpoint Barrier)

    • Flink 的检查点算法用到了一种为分界线(barrier)的特殊数据形式,用来把一条流上的数据按照不同的检查点分开
    • Flink 会定时在任务的 Source Task 触发 barrier,barrier是一种特殊的消息事件,会随着消息通道流入到下游的算子中
    • barrier 之前到来的数据导致的状态更改,都会被包含在当前 barrier 所属的检查点中
    • barrier 之后的数据导致的所有更改,就会被包含在之后的检查点中
    • 在某些算子的 Task 有多个输入时,会存在 Barrier 对齐时间,我们可以在Web UI上面看到各个 Task 的Barrier 对齐时间
    • 只有当最后 Sink 端的算子接收到 Barrier 并确认该次 Checkpoint 完成时,该次 Checkpoint 才算完成
详解参考:Flink系列 15. 介绍Flink中Checkpoint与Savepoint

从检查点启动示例

从checkpoint启动示例:
./bin/flink run -s hdfs://ip:8020/user/xx/chk-35  -c xxx_demo ./xxx.jar 

从savepoint启动参考:Flink保留savepoint,并从savepoint启动示例

  其他参考: Flink 容错机制 保存点和检查点 Flink Checkpoint 原理流程以及常见失败原因分析

标签:Checkpoint,barrier,Flink,getCheckpointConfig,容错,检查点,env
From: https://www.cnblogs.com/-courage/p/17583340.html

相关文章

  • 一文弄懂Flink CDC
    1.CDC概述CDC(ChangeDataCapture)是一种用于捕获和处理数据源中的变化的技术。它允许实时地监视数据库或数据流中发生的数据变动,并将这些变动抽取出来,以便进行进一步的处理和分析。传统上,数据源的变化通常通过周期性地轮询整个数据集进行检查来实现。但是,这种轮询的方式效率低下且......
  • 阿里云flink操作示例
    前期简单查询:(不同版本语法或有不同,当前版本:专有云flink1.11)1、可以先简单定义自己的源表字段(下图test),进行简单查询,确定结果是否输出(结果输出是一直存在的,源表实时新增一条数据,查询结果就会新增一条数据)备注:以下示例特殊信息写成自己的信息;可定义多个源表2、定义结果表(l_result......
  • 第三章 Flink 集群搭建
    Flink集群搭建Flink可以选择的部署方式有:Local、Standalone(资源利用率低)、Yarn、Mesos、Docker、Kubernetes、AWS。我们主要对Standalone模式和Yarn模式下的Flink集群部署进行分析。我们对standalone模式的Flink集群进行安装,准备三台虚拟机,其中一台作为JobManager(hadoo......
  • 全网最详细4W字Flink入门笔记(下)
    本文已收录至Github,推荐阅读......
  • 全网最详细4W字Flink入门笔记(上)
    本文已收录至Github,推荐阅读......
  • 大数据生态圈/Hadoop/Spark/Flink/数据仓库/实时分析/推荐系统
    课程实用性很强,老师讲的很透彻,都是面试容易问到的;紧扣当前企业所用技术,对于从事大数据或者转行大数据行业,都有很大的帮助。比屋教育,秉承“活学活用”的教育理念,集合资深专家讲师团队,依托完善的线上教学管控平台,专注于大数据、云计算、互联网架构师等领域的职业技能培训,着力培养......
  • 大数据Flink之基本架构
    第二章Flink基本架构2.1 JobManager与TaskManagerFlink运行时包含了两种类型的处理器:JobManager处理器:也称之为Master,用于协调分布式执行,它们用来调度task,协调检查点,协调失败时恢复等。Flink运行时至少存在一个master处理器,如果配置高可用模式则会存在多个master......
  • WiredTiger引擎的日志和检查点机制
    每个数据库系统都要确保持久性和可靠性。MongoDB使用journal和检查点来每个数据库系统都必须确保持久性和可靠性。MongoDB使用Journals和Checkpoints完成WAL(Write-Ahead-Logging)。从最基本的开始,为什么首先需要WAL?这是为了确保我们的数据在每次写操作之后都是持久的,并且在不......
  • 注册中心的可用性和一致性,分区容错性。CAP理论
    https://juejin.cn/post/6961201114343538724CAP理论什么是CAP?C代表Consistency(一致性)一致性是指所有服务节点在同一时刻的数据是完全一致的A代表Availability(可用性)可用性是指所有的请求都必须得到响应P代表Partitiontolerance(分区容错性)分区容错性是指分布式系统的某......
  • flink demo
    1.搭建测试环境安装1.1下载并启动docker-compose容器#该DockerCompose中包含的容器有:#DataGen:数据生成器。容器启动后会自动开始生成用户行为数据,并发送到Kafka集群中。默认每秒生成1000条数据,持续生成约3小时。也可以更改docker-compose.yml中datagen的spee......