Flink 调优:Checkpoint 问题排查

本文详细探讨了Flink Checkpoint的流程、监控和常见问题,包括Checkpoint失败的原因,如Decline和Expire,以及Checkpoint慢的多个因素,如Source Trigger慢、Barrier Alignment慢、同步和异步阶段问题等。通过Flink UI可以监控Checkpoint状态,识别反压和数据倾斜,从而进行有效的故障排查和性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扫码关注公众号免费阅读全文:冰山烈焰的黑板报
在这里插入图片描述

1. Flink Checkpoint 流程

在使用 Flink 时, 我们基本都会用到 Checkpoint,也难免不会遇到 Checkpoint 慢或者失败等问题,如果想要排查这些问题,那么必须先知道 Checkpoint 的生产流程。关于 Flink Checkpoint 的流程,在 Flink 原理与实现:Checkpoint 这篇文章中做了比较详细的介绍。一个 Task 的 Checkpoint 流程包括以下几个步骤:

  1. JobManager 向 Source 算子发送 Barrier ,初始化 Checkpoint;
  2. Source 算子收到 Barrier 之后,Checkpoint 自己的 State,并向下游发送 Barrier;
  3. 下游收到 Barrier 后,进行 Barrier Alignment 处理;
  4. Task 开始同步阶段的 Snapshot;
  5. Task 开始异步阶段的 Snapshot;
  6. Task 做完 Checkpoint 之后,再上报 JobManager。

2. Checkpoint 监控

通过 Flink UI,我们可以看到 Flink Job 的运行状态、运行日志、Checkpoint 和反压等情况。现在我们就认识下 Flink UI 中与 Checkpoint 相关的部分,图 1 是 Flink 1.6 版本的 UI,1.9 之后 Flink UI 做了优化,不过大同小异。
图1 Flink Job Overview
在图 1 中,其中左侧侧边栏的:

  1. Task Manager:可以查看各个 Task 的配置、日志、资源等相关信息;
  2. Job Manager:可以查看 JobManager 的配置、资源、日志等相关信息。

图 1 右侧下方与 Checkpoint 相关的主要是 Checkpoints,在排查 Checkpoint 的相关问题时,也可能会用到 SubtasksBack Pressures

  • Subtasks:可以查看 JobGraph 的各个节点 Subtask 的吞吐量等情况,能够据此判断数据倾斜情况;
  • Back Pressures:用于观察 JobGraph 各节点算子的反压情况,其中:
    • OK: 0 <= Ratio <= 0.10
    • LOW: 0.10 < Ratio <= 0.5
    • HIGH: 0.5 < Ratio <= 1
  • Checkpoints:与 Checkpoint 相关的信息基本都在这里了。
    • Overview:相当于是 Checkpoint Dashboard;
    • History:各个 Checkpoint 的执行信息;
    • Summary:整个 Job 所有 Checkpoint 的 End to End Duration、State Size 和 Buffered During Alignment 的最大值、最小值和均值;
    • Configuration:Checkpoint 的配置信息,也就是 Flink 调优:Checkpoint 配置 的一些配置。

Summary 和 Configuration 比较简单就不多做赘述了,而 Overview 则如图 1 所示,比较简洁明了,需要说明的是 ID 都是 Checkpoint ID——可用于在 Task Manager 日志和 Job Manager 日志中查找对应的信息,More details 是该 Checkpoint 的生产明细信息。而 History 如图 2 所示:
图 2 Checkpoint history
Hi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值