首页 > 其他分享 >flink从检查点恢复时候做什么

flink从检查点恢复时候做什么

时间:2023-06-06 11:44:16浏览次数:38  
标签:状态 flink 恢复 Flink 键控 操作符 检查点 数据

当发生故障时,Flink从最近的一致性检查点中恢复任务的状态。以下是从检查点恢复的主要步骤:

  1. 加载检查点元数据和状态数据:Flink首先加载最近一次成功的检查点的元数据和持久化的状态数据。检查点的元数据包含了关于检查点的信息,如检查点ID、生成时间和相关的任务信息等。持久化的状态数据包含了任务的状态信息,如键控状态、操作符状态和元数据状态等。

  2. 恢复键控状态:Flink根据检查点中的键控状态信息来恢复任务的键控状态。键控状态是基于键值对的状态,用于存储根据特定键进行聚合、关联和查询的数据。Flink会根据检查点中的键控状态信息将键控状态恢复到故障之前的状态。

  3. 恢复操作符状态:Flink根据检查点中的操作符状态信息来恢复任务的操作符状态。操作符状态是任务内部操作符(如Map、Filter、Reduce等)的状态,用于存储操作符执行过程中的中间结果和状态信息。Flink会根据检查点中的操作符状态信息将操作符状态恢复到故障之前的状态。

  4. 恢复元数据状态:Flink根据检查点中的元数据状态信息来恢复任务的元数据状态。元数据状态是任务中用于存储和管理一些额外信息的状态,如水印(Watermark)的时间戳、事件时间(Event Time)的状态等。Flink会根据检查点中的元数据状态信息将元数据状态恢复到故障之前的状态。

  5. 从检查点之后的数据位置继续处理:一旦任务的状态被恢复,Flink会从检查点之后的数据位置继续处理流数据。这意味着任务将从故障发生时的数据位置开始处理,确保不会重复处理已经处理过的数据。Flink会在继续处理之前,确保故障期间的数据已经被正确处理,以保证数据的完整性。

通过以上步骤,Flink能够从最近的一致性检查点中恢复任务的状态,包括键控状态、操作符状态和元数据状态。这样可以确保在故障发生后,任务能够从故障之前的状态继续处理数据,保证数据的一致性和正确性。

标签:状态,flink,恢复,Flink,键控,操作符,检查点,数据
From: https://www.cnblogs.com/lukairui/p/17460110.html

相关文章

  • flinkv1.14启动过程分析
    今天阅读了一下flinkv1.14的代码,首先分析一下flink启动的过程。首先分2种,一种是SessionClusterEntrypoint,一种是JobClusterEntrypoint。分别对应session模式和per-job模式。session模式就是一次启动,可以执行多个job,执行完job还有后台进程在等待用户提交新的job。per-job模式......
  • rman测试备份跳过固定表空间后做全库恢复 (recover database skip tablespace )
    rman备份排除表空间:备份过程截图:备份脚本:run{allocatechannelt1devicetypedisk;allocatechannelt2devicetypedisk;backupascompressedbackupsetincrementallevel0filesperset10format'/u01/backup/data_%T_%U'database;sql'altersystemarc......
  • Flink CDC
    第1章CDC简介1.1什么是CDCCDC是ChangeDataCapture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。1.2CDC的种类CDC主要分为基于查询......
  • Qt里怎么恢复一个被最小化的窗口
    这个需求出现在窗口最小化之后又被再次运行的时候。很多用户往往不去注意窗口是否已经存在,而是经常直接再次执行打开窗口操作。为了拦截这种情况,通常我们会去检测到窗口是否已经存在,如果存在则把它恢复正常,而不是再新创建一个。这个操作是通过ShowNormal()实现的,但这个函数在wi......
  • Flink Table Store 独立孵化启动 ,Apache Paimon 诞生
    2023年3月12日,FlinkTableStore项目顺利通过投票,正式进入Apache软件基金会(ASF)的孵化器,改名为ApachePaimon(incubating)。随着ApacheFlink技术社区的不断成熟和发展,越来越多企业开始利用Flink进行流式数据处理,从而提升数据时效性价值,获取业务实时化效果。与此......
  • Flink实战(七) - Time & Windows编程
    掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark。Flink在流处理工程中支持不同的时间概念。1处理时间(Processingtime)执行相应算子操作的机器的系统时间。当流程序在处理时间运行时,所有基于时间的算子操作(如时间窗口)将使用运行相......
  • lightdb增量检查点特性及稳定性测试
    checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件,此时会有大量的I/O写操作。在PostgreSQL中,检查点(后台)进程执行检查点;当发生下列情况之一时,其进程将启动:检查点间隔时间由checkpoint_timeout设置(默认间隔为300秒(5分钟))在9.5版或更高......
  • Flink中的Window和Time详解
    Window(窗口)Flink认为批处理是流处理的一个特例,所以Flink底层引擎是一个流式引擎,在上面实现了流处理和批处理。而Window就是从流处理到批处理的一个桥梁。通常来讲,Window是一种可以把无界数据切割为有界数据块的手段例如,对流中的所有元素进行计数是不可能的,因为通......
  • Flink核心API之DataSet
    DataSetAPIDataSetAPI主要可以分为3块来分析:DataSource、Transformation、Sink。DataSource是程序的数据源输入。Transformation是具体的操作,它对一个或多个输入数据源进行计算处理,例如map、flatMap、filter等操作。DataSink是程序的输出,它可以把Transformation处理之后的数......
  • Flink核心API之Table API和SQL
    TableAPI&SQL注意:TableAPI和SQL现在还处于活跃开发阶段,还没有完全实现Flink中所有的特性。不是所有的[TableAPI,SQL]和[流,批]的组合都是支持的。TableAPI和SQL的由来:Flink针对标准的流处理和批处理提供了两种关系型API,TableAPI和SQL。TableAPI允许用户以一种很直......