如何排查 Flink Checkpoint 失败问题?

分析&回答

这是 Flink 相关工作中最常出现的问题,值得大家搞明白。

1. 先找到超时的subtask序号

图有点问题,因为都是成功没失败的,尴尬了。

借图:

2. 找到对应的机器和任务

方法很多,这里看自己习惯和公司提供的系统。

3. 根据日志排查问题

  • netstat -nap| grep 端口号 就找到对应的pid了,
  • 然后ps aux | grep pid 就找到任务目录和日志了。

比如下一种情况:

  1. 接着去jobmanager上查看这个checkpoint的一些延迟信息
  2. 根据这些失败的task的id去查询这些任务落在哪一个taskmanager上,经过排查发现,是同一台机器,通过ui看到该机器流入的数据明显比别的流入量大
  3. 因此是因为数据倾斜导致了这个问题,追根溯源还是下游消费能力不足的问题

反思&扩展

  1. 用户代码逻辑没有对于异常处理,让其直接在运行中抛出。比如解析 Json 异常,没有捕获,导致 Checkpoint失败,或者调用 Dubbo 超时异常等等。
  2. 依赖外部存储系统,在进行数据交互时,出错,异常没有处理。比如输出数据到 Kafka、Redis、HBase等,客户端抛出了超时异常,没有进行捕获,Flink 任务容错机制会再次重启。
  3. 内存不足,频繁GC,超出了 GC 负载的限制。比如 OOM 异常
  4. 网络问题、机器不可用问题等等。

Checkout 在 Flink 中非常重要,其他指标大家也需要多关注。


喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

相关推荐
yy.y--44 分钟前
Java数组逆序读写文件实战
java·开发语言
BD_Marathon2 小时前
IDEA创建多级包时显示在同一行怎么办
java·ide·intellij-idea
亓才孓2 小时前
【Exception】CONDITIONS EVALUATION REPORT条件评估报告
java·开发语言·mybatis
硅基动力AI2 小时前
如何判断一个关键词值不值得做?
java·前端·数据库
重生之后端学习3 小时前
78. 子集
java·数据结构·算法·职场和发展·深度优先
那起舞的日子3 小时前
斐波那契数列
java·算法
想用offer打牌4 小时前
一站式了解接口防刷(限流)的基本操作
java·后端·架构
优思学苑4 小时前
过程能力指标CPK高为何现场仍不稳?
大数据·人工智能·管理·pdca·管理方法
姜源Jerry4 小时前
【Trae】Trae IDE&SOLO浅尝
java·ide·ai
宇木灵4 小时前
C语言基础-三、流程控制语句
java·c语言·前端