首页 > 其他分享 >Flink - [07] 容错机制

Flink - [07] 容错机制

时间:2024-06-17 16:59:02浏览次数:13  
标签:状态 07 Flink 应用程序 容错 检查点 应用 一致性

题记部分

 

一、一致性检查点

  Flink故障恢复机制的核心,就是应用状态的一致性检查点。有状态流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候。

 

二、从检查点恢复状态

  在执行流应用程序期间,Flink会定期保存状态的一致检查点。如果发生故障,Flink将会使用最近的检查点来一致恢复应用程序的状态,并重新启动处理流程。

(1)遇到故障之后,第一步就是重启应用

(2)第二步是从checkpoint中读取状态,将状态重置。从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同。

(3)第三步开始消费并处理检查点到发生故障之间的所有数据。这种检查点的保存和恢复机制可以为应用程序状态提供“精确一次”(exactly-once)的一致性,因为所有算子都会保存检查点并恢复其所有状态,这样一来所有的输入流都会被重置到检查点完成时的位置。

 

 

 

三、检查点的实现算法

(1)一种简单的想法:暂停应用,保存状态到检查点,再重新恢复应用

(2)Flink的改进实现:基于Chandy-Lamport算法的分布式快照,将检查点的保存和数据处理分离开,不暂停整个应用。

 

 

 

 

 

 

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

标签:状态,07,Flink,应用程序,容错,检查点,应用,一致性
From: https://www.cnblogs.com/houhuilinblogs/p/18252754

相关文章

  • Flink - [06] 状态管理
    题记部分 一、Flink中的状态由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态。可以认为状态就是一个本地变量,可以被任务的业务逻辑访问。Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑在Flin......
  • Flink - [05] 时间语义 & Watermark
    题记部分 一、时间语义Flink中的时间语义分为以下,(1)EventTime:事件创建的时间(2)IngestionTime:数据进入Flink的时间(3)ProcessingTime:执行操作算子的本地系统事件,与机器相关 哪种时间语义更重要?不同的时间语义有不同的应用场合,我们往往更关心事件时间(Event Time)某些......
  • Flink - [03] API
    使用scala编写flinkapi从不同的数据源(源端)读取数据,并进行无界流/有界流的数据处理,最终将处理好的数据sink到对应的目标端 一、maven配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.or......
  • [图解]《分析模式》漫谈07-反射,不是映射
    100:00:00,780-->00:00:04,910今天我们来说一个反射不是映射的问题200:00:07,220-->00:00:11,300在第2章里面有这么一段话300:00:11,550-->00:00:14,730这里提到两个词400:00:14,740-->00:00:16,050一个是reflection500:00:17,560-->00:00:18,490一个......
  • Flink面试必问题:时间和窗口处理面试题及参考答案(3万字长文)
    目录Flink中的事件时间(EventTime)和处理时间(ProcessingTime)有什么区别?Flink的容错机制是如何实现的?Flink中的窗口(Window)是什么?Flink支持哪些类型的窗口?如何定义一个滚动窗口(TumblingWindow)?如何定义一个滑动窗口(SlidingWindow)?如何定义一个会话窗口(SessionWindow)?Flin......
  • 【flink实战】flink-connector-mysql-cdc导致mysql连接器报类型转换错误
    文章目录一.报错现象二.方案二:重新编译打包flink-connector-cdc1.排查脚本2.重新编译打包flink-sql-connector-mysql-cdc-2.4.0.jar3.测试flink环境三.方案一:改造flink连接器一.报错现象flinksql任务是:mysql到hdfs的离线任务,flink在消费mysql时报如上错误......
  • 冲刺07
    fragment_reg_parent_fill_inf.xml<?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"androi......
  • 077:vue+cesium 显示等高线
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第077个示例文章目录一......
  • (高清pdf集合)图灵程序设计丛书:大规模数据处理入门与实战(套装全10册)【图灵出品!一套囊括S
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso数据处理基础:介绍数据处理的基本概念、流程和应用场景,帮助读者建立对数据处理的整体认识。SQL语言与应用:详细讲解SQL的语法和用法,包括数据查询、数据操作和数据定义等,以及在实际应用中的最佳实践。Python数据挖......
  • Flink高级配置
    高级配置主题#Flink依赖剖析#Flink自身由一组类和依赖项组成,这些共同构成了Flink运行时的核心,在Flink应用程序启动时必须存在,会提供诸如通信协调、网络管理、检查点、容错、API、算子(如窗口)、资源管理等领域的服务。这些核心类和依赖项都打包在flink-dist.jar,可以在下......