Flink的容错机制

这篇具有很好参考价值的文章主要介绍了Flink的容错机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

容错机制

容错:指出错后不影响数据的继续处理,并且恢复到出错前的状态。
检查点:用存档读档的方式,将之前的某个时间点的所有状态保存下来,故障恢复继续处理的结果应该和发送故障前完全一致,这就是所谓的检查点。

检查点的控制节点:jobManager里面的检查点协调器,向source节点的数据插入barrier标记。

Flink的容错机制,flink,java,服务器

检查点的保存:
- 周期性触发保存
- 保存的时间点:所有算子恰好处理完一个相同的输入数据时(使用Barrier机制)

检查点分界线Barrier

barrier标记表示这个标记之前的所有数据已经将状态更改存入当前检查点。后续的算子节点只要遇到它就开始对状态做持久化快照保存。在它之后对数据状态的改变,只能保存到下一个检查点中。

检查点算法:Chandy-Lamport算法的一种变体。
算法两个原则:

  1. 当上游任务向多个并行下游任务发送barrier时,需要广播出去
  2. 而当多个上游任务向同一个下游任务传递分界线时,需要在下游任务执行“分界线对齐”操作,也就是需要等到所有并行分区的barrier都到齐,才可以开始状态的保存。

分界线对齐策略

  1. 精确一次(等待分界线2,先到的数据暂不进行处理):处理多次的结果是一样的
    Flink的容错机制,flink,java,服务器

  2. 至少一次(对先到的数据进行处理):检查点中记录了先到数据对状态的更新信息,但是还未保存到状态后端,如果此时发生故障进行故障恢复,会导致从source重复发送刚刚已经处理过的先到数据。
    Flink的容错机制,flink,java,服务器

分界线非对齐策略

Flink的容错机制,flink,java,服务器

  • 非对齐策略只有精准一次
  • 缺点是需要将算子左边,分界线右边的所有数据存储起来,增加内存压力。

Flink的容错机制,flink,java,服务器

检查点配置

 CheckpointConfig checkpointConfig = env.getCheckpointConfig();
        //指定一致性语义
//        checkpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);

        //检查点的存储
        //JobManagerCheckpointStorage:将检查点存储到JobManager的内存中
        //FileSystemCehckpointSotrage:将检查点存储到指定的文件系统中
        checkpointConfig.setCheckpointStorage(new FileSystemCheckpointStorage("hdfs://hadoop102:8020/flink/checkpoint"));

        //状态后端
//        env.setStateBackend(new EmbeddedRocksDBStateBackend());

        //检查点间隔
        checkpointConfig.setCheckpointInterval(2000L);

        //检查点超时时间
        checkpointConfig.setCheckpointTimeout(10000);

        //同时存在的检查点个数
        checkpointConfig.setMaxConcurrentCheckpoints(1);

        //两次检查点之间的间隔
        checkpointConfig.setMinPauseBetweenCheckpoints(1000L);

        //检查点清理
        checkpointConfig.setExternalizedCheckpointCleanup(CheckpointConfig.ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION);

        //检查点允许的失败次数
        checkpointConfig.setTolerableCheckpointFailureNumber(5);

        //开启非对齐模式:只有在精准一次时才能开启,且最大同时存在检查点只能为1
        checkpointConfig.enableUnalignedCheckpoints();

        //对齐超时,自动开启非对齐
        checkpointConfig.setAlignedCheckpointTimeout(Duration.ofSeconds(5));

        //最终检查点:

        //开启changlog
        env.enableChangelogStateBackend(true);

通用增量changelog配置:hashmap本身不支持增量存储状态,rockDB是支持的。changeLog可以不论hashmap还是rockDB,都实现增量存储。开启该配置可以减少检查点的持续时间,在创建检查点时,只有changlog中的相关部分需要上传。
- 创建更多的文件
- 残留更多的文件
- 使用更多的IO来上传状态
- 占用更多的CPU资源来序列化状态变更

保存点savepoint

检查点与保存点的区别:

  1. 检查点
    • 检查点是频繁触发的,设计目标就是轻量和尽快恢复
    • 检查点的数据在作业终止后是否删除可以配置
    • 数据存储格式可能是增量的
  2. 保存点
    • 设计更侧重于可移植和操作灵活性,即运维
    • 针对计划中的,手动的运维
    • 保存点在作业终止和恢复后都不会删除
    • 保存点的数据格式以状态后端独立的(标准的)数据格式存储

保存点的用途:文章来源地址https://www.toymoban.com/news/detail-758182.html

  • 版本管理和归档存储
  • 更新Flink版本
  • 更新应用程序
  • 调整并行度

保存点的使用之切换状态后端

  1. 开启flink集群
  2. 提交任务 bin/flink run -d -c -Dstate.backend=hashmap 全类名 jar路径
  3. 保存点的落盘: bin/flink -yid -type canonical yarn_id job_id hdfs://hadoop102/flink-savepoint
  4. 切换状态后重启:bin/flink run -d -Dstate.backend=rocksdb -s hdfs保存点路径 全类名 jar包路径

到了这里,关于Flink的容错机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flink】容错机制

    目录 1、检查点 ​编辑1.1 检查点的保存 1.1.1 周期性的触发保存 1.1.2 保存的时间点 1.1.3 时间点的保存与恢复 1.1.3.1保存 ​编辑 1.1.3.2 恢复的具体步骤: 1.2 检查点算法 1.2.1 检查点分界线(Barrier) 1.2.2 分布式快照算法(Barrier对齐的精准一次) 1.2.3 分布式快照算法(Barrier对

    2024年02月04日
    浏览(25)
  • Flink 学习八 Flink 容错机制 & checkpoint & savepoint

    https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/concepts/stateful-stream-processing/ 上一节讲述 状态后端 ;Flink是一个 带状态stateful 的数据处理系统,在处理数据的过程中,各个算子的记录的状态会随着算子处理的状态而改变 ; 状态后端 负责将状态保存在内存或外部持久化存储中 (内存

    2024年02月09日
    浏览(69)
  • Flink运行架构以及容错机制

    flink是一个开发框架,用于进行数据批处理,本文主要探讨Flink任务运行的的架构。由于在日常生产环境中,常用的是flink on yarn 和flink on k8s两种类型的模式,因此本文也主要探讨这两种类型的异同,以及不同角色的容错机制。 JM是一个独立的JVM进程,在HA场景下一个App能够同

    2024年01月24日
    浏览(36)
  • 大数据之flink容错机制

    大数据之flink容错机制 https://blog.51cto.com/dashujutongmeng/5241407

    2024年02月15日
    浏览(36)
  • 大数据学习之Flink、Flink容错机制的注意事项

     第一章、Flink的容错机制 第二章、Flink核心组件和工作原理 第三章、Flink的恢复策略 第四章、Flink容错机制的注意事项 第五章、Flink的容错机制与其他框架的容错机制相比较 目录 第四章、Flink容错机制的注意事项 Ⅰ、注意事项 1. Checkpoint的稳定性: 2. 状态一致性: 3. 失败的

    2024年01月23日
    浏览(39)
  • 大数据学习之Flink、快速搞懂Flink的容错机制!!!

    第一章、Flink的容错机制 第二章、Flink核心组件和工作原理 第三章、Flink的恢复策略 第四章、Flink容错机制的注意事项 第五章、Flink的容错机制与其他框架的容错机制相比较 目录 第一章、Flink的容错机制 Ⅰ、Flink的容错机制 1. 概念: Ⅱ、 状态的一致性: 1.一致性级别: 2

    2024年01月22日
    浏览(31)
  • 《Flink学习笔记》——第十章 容错机制

    10.1 检查点(Checkpoint) 为了故障恢复,我们需要把之前某个时间点的所有状态保存下来,这份“存档”就是“检查点” 遇到故障重启的时候,我们可以从检查点中“读档”,恢复出之前的状态,这样就可以回到当时保存的一刻接着处理数据了。 故障恢复之后继续处理的结果

    2024年02月10日
    浏览(69)
  • 大数据-玩转数据-Flink 容错机制

    在分布式架构中,当某个节点出现故障,其他节点基本不受影响。在 Flink 中,有一套完整的容错机制,最重要就是检查点(checkpoint)。 在流处理中,我们可以用存档读档的思路,把之前的计算结果做个保存,这样重启之后就可以继续处理新数据、而不需要重新计算了。所以

    2024年02月07日
    浏览(41)
  • 大数据学习之Flink、比较不同框架的容错机制

     第一章、Flink的容错机制 第二章、Flink核心组件和工作原理 第三章、Flink的恢复策略 第四章、Flink容错机制的注意事项 第五章、Flink的容错机制与其他框架的容错机制相比较 目录 第五章、Flink的容错机制与其他框架的容错机制相比较 Ⅰ、Flink的容错机制与其他框架的容错机

    2024年01月23日
    浏览(37)
  • Flink 状态管理与容错机制(CheckPoint & SavePoint)的关系

    无状态计算的例子: 例如一个加法算子,第一次输入 2+3=5 那么以后我多次数据 2+3 的时候得到的结果都是 5 。得出的结论就是,相同的输入都会得到相同的结果,与次数无关。 有状态计算的例子: 访问量的统计,我们都知道 Nginx 的访问日志一个请求一条日志,基于此我们就

    2024年02月04日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包