Flink 常见问题排查与任务调优实践

本文详述了Flink作业在部署、运行过程中遇到的问题,如作业部署失败、运行异常、处理速度慢及数据异常等,并提供了针对性的排查方法。同时,文章深入探讨了Flink作业的性能调优,包括任务资源、数据倾斜、低速外部系统、大状态优化,特别是RocksDB参数调优,如Write Buffer Size、Block Cache Size等。此外,还分享了使用JProfiler和Java Flight Recorder进行性能分析的问题追因实践。
摘要由CSDN通过智能技术生成

 Flink 问题排查 - 作业部署失败 现象:作业无法正常提交与启动

可能成因

确认方法

解决措施

程序包依赖与集群依赖存在版本冲突

日志:NoSuchMethodError/

IncompatibleClassChangeError/

ClassCastException

1. 程序包中 Flink/Hadoop 相关依赖设为 provided2. 使用 Maven-Shade-Plugin  

3. 调整 classloader.resolve-order

程序包缺少依赖

日志:1.NoClassDefFoundError

2.NoMatchingTableFactory

3.Could not instantiate the executor

程序包中添加 connector 依赖

程序包中添加 planner 依赖

升级 1.11 之后,程序包需要添加 flink-client 依赖

Flink Client 缺少依赖

Client 日志:Could not build the program from jar file.

NoClassDefFoundError: hadoop/jersey

Flink lib 目录添加 flink-hadoop-shade-uber-jar

Flink lib 目录添加 jersey-core-jar

集群资源不足

Client 日志:Deploy took more than 60s

Slot allocation request timed out

扩充集群资源

减少任务并行度

Flink 问题排查 - 作业运行异常 现象:作业突然停止运行且不恢复

可能成因

确认方法

解决措施

Source 算子实现方法不正确

JM 日志:作业结束于 FINISHED (SUCCEEDED) 状态

修改 Source 算子的实现,保持 while true 循环

作业重启次数达到阈值

TM 日志:restart strategy prevented it

1. 找出作业崩溃重启原因

2. 增大 RestartStrategy 阈值或者 yarn.application-attempt 阈值

JVM 内存用量超出 YARN/K8s 阈值

JM 日志:Killing container

通常因为 RocksDB 内存不受控导致,可升级为 Flink 1.11 以上版本

也可能是用户代码分配了直接内存

Flink 问题排查 - 作业处理缓慢 现象:作业输出量较稳定,但是不及预期值(5000 ~ 20000 条/秒/核)

可能成因

确认方法

解决措施

序列化、反序列化开销大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值