首页 > 其他分享 >Flink调优-Checkpoint优化

Flink调优-Checkpoint优化

时间:2023-08-03 17:35:52浏览次数:40  
标签:快照 Barrier Stream Flink Checkpoint 调优 Operator

1 Checkpoint的介绍

Checkpoint的官网文档地址:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/ops/state/checkpoints/

Checkpoint 使 Flink 的状态具有良好的容错性,通过 checkpoint 机制,Flink 可以对作业的状态和计算位置进行恢复。

Flink是一个分布式的流处理引擎,需要保障Flink作业的7*24小时持续稳定运行。

为了保证state容错,Flink提供了处理故障的措施,这种措施称之为checkpoint(一致性检查点)。checkpoint是Flink实现容错的核心功能,主要是周期性地触发checkpoint,将state生成快照持久化到外部存储系统(比如HDFS)。

如果Flink程序出现故障,那么就可以从上一次checkpoint中进行状态、或故障之前某一状态恢复,然后从该状态恢复任务的运行,从而提供容错保障。 在 Flink 中,Checkpoint 机制采用的是 chandy-lamport(分布式快照)算法,通过 Checkpoint 机制,保证了 Flink 程序内部的 Exactly Once 语义。

2 Checkpoint的运行机制

Checkpoint指定触发生成时间间隔后,每当需要触发Checkpoint时,会向Flink程序运行时的多个分布式的Stream Source中插入一个Barrier标记,这些Barrier会根据Stream中的数据记录一起流向下游的各个Operator。当一个Operator接收到一个Barrier时,它会暂停处理Steam中新接收到的数据记录。因为一个Operator可能存在多个输入的Stream,而每个Stream中都会存在对应的Barrier,该Operator要等到所有的输入Stream中的Barrier都到达。当所有Stream中的Barrier都已经到达该Operator,这时所有的Barrier在时间上看来是同一个时刻点(表示已经对齐),在等待所有Barrier到达的过程中,Operator的Buffer中可能已经缓存了一些比Barrier早到达Operator的数据记录(Outgoing Records),这时该Operator会将数据记录(Outgoing Records)发射(Emit)出去,作为下游Operator的输入,最后将Barrier对应Snapshot发射(Emit)出去作为此次Checkpoint的结果数据。

2.1 Flink Barrier

flink实现检查点一致就是通过barrier实现的,

Barrier是由流数据源(stream source)注入数据流中,并作为数据流的一部分与数据记录一起往下游流动。Barriers将流里的记录分隔为一段一段的记录集,每一个记录集都对应一个快照。每个Barrier会携带一个快照的ID(递增),这个快照对应Barrier前面的记录集。


标签:快照,Barrier,Stream,Flink,Checkpoint,调优,Operator
From: https://blog.51cto.com/u_15891458/6951159

相关文章

  • Flink调优
    一、资源配置优化1、并行度1.1并行度设置并行度(parallelism):为任务提供足够的并行度,但并行度也不是越大越好,太多会加重数据在多个solt/taskmanager之间数据传输压力,包括序列化和反序列化带来的压力。一个任务的并行度设置可以从4个层面指定:OperatorLevel(算子层面)ExecutionEnvir......
  • mysql在执行innobackupex增量备份时报错cannot open *****/xtrabackup_checkpoints
    问题描述:mysql在执行innobackupex增量备份时报错cannotopen*****/xtrabackup_checkpoints,如下所示:数据库:mysql5.7.21说明:此次测试环境为从节点.1、异常重现[mysql@mysql-leo-perslave~]$/usr/bin/innobackupex--defaults-file=/home/mysql/etc/my.cnf--socket=/mysql/da......
  • Flink介绍
    1什么是Flink官网定义:ApacheFlink isaframeworkanddistributedprocessingengineforstatefulcomputationsover unbounded and bounded datastreams.Flinkhasbeendesignedtorunin allcommonclusterenvironments,performcomputationsat in-memory s......
  • JVM调优篇:探索Java性能优化的必备种子面试题
    JVM内存模型首先面试官会询问你在进行JVM调优之前,是否了解JVM内存模型的基础知识。这是一个重要的入门问题。JVM内存模型主要包括程序计数器、堆、本地方法栈、Java栈和方法区(1.7之后更改为元空间,并直接使用系统内存)。正常堆内存又分为年轻代和老年代。在Java虚拟机中,年轻代用......
  • 项目优化调优
    啊 一个用户充值时会有多种优惠,默认给用户最高的,为了提升这方面的速度,采用countDownLatch每种优惠计算一下最后金额,返回最低金额。40ms降到20ms  立减的时候,qps较高,还是用多线程降低rt,但是并没有降,load急速上升。拆分表,按业务拆分 春节档玩法多,某个值到了才能参加活......
  • HBase Compaction 原理与线上调优实践
    作者:vivo互联网存储技术团队-HangZhengbo本文对HBaseCompaction的原理、流程以及限流的策略进行了详细的介绍,列举了几个线上进行调优的案例,最后对Compaction的相关参数进行了总结。一、Compaction介绍HBase是基于一种LSM-Tree(Log-StructuredMergeTree)体系架构的存储模......
  • Flink 容错机制 保存点和检查点
    Flink检查点常用配置://配置检查点env.enableCheckpointing(180000);//开启checkpoint每180000ms一次env.getCheckpointConfig().setMinPauseBetweenCheckpoints(50000);//确认checkpoints之间的时间会进行50000msenv.getCheckpointConfig().setCheckpointTimeout(60......
  • java笔记_11_JVM调优参数(转载)
    -Xms2048m//设置jvm的初始内存。这个值最好设置的跟-Xmx相同,以避免每次垃圾回收完成后JVM都要重新分配内存-Xmx2048m//JVM最大可用内存-XX:PermSize=256M//设置持久代大小-XX:MaxPermSize=512M//设置最大持久代大小-XX:+PrintGCDetails-XX:+PrintGCDat......
  • linux服务器性能调优(udp为主)
    udp的好处很明显,效率高,减少了建立连接的流程,减少了报文头的占比,也减少了维护连接的开销。缺点就是不稳定,会丢包。还有就是由于udp的高效,导致用于udp的一些应用开发,并发都比较大,更容易丢包。io复用SO_REUSEADDRSO_REUSEPORT创建listener用来监听数据时,有时候需要配置io复用。也......
  • 一文弄懂Flink CDC
    1.CDC概述CDC(ChangeDataCapture)是一种用于捕获和处理数据源中的变化的技术。它允许实时地监视数据库或数据流中发生的数据变动,并将这些变动抽取出来,以便进行进一步的处理和分析。传统上,数据源的变化通常通过周期性地轮询整个数据集进行检查来实现。但是,这种轮询的方式效率低下且......