flink 常用异常错误解析

IllegalConfigurationException

如果您看到从TaskExecutorProcessUtilsJobManagerProcessUtils抛出IllegalConfigurationException,则通常表明存在无效的配置值(例如,负的内存大小,大于1的分数等)或配置冲突。检查与异常消息中提到的内存组件相关的文档章节或 配置选项

 

OutOfMemoryError:Java heap space

异常通常表明JVM堆太小。您可以尝试通过增加总内存来增加JVM堆大小。您也可以直接增加 TaskManager的任务堆内存或JobManager的 JVM堆内存

注意您还可以增加 TaskManager的框架堆内存,但是只有在确定Flink框架本身需要更多内存的情况下,才应更改此选项,这个选型一般不会出现问题,除非调用类比较多。

OutOfMemoryError:Direct buffer memory

异常通常表明JVM直接内存限制太小或存在直接内存泄漏。检查用户代码或其他外部依赖项是否使用了JVM直接内存,并且已正确解决了该问题。您可以尝试通过调整直接堆外内存来增加其限制。另请参阅如何为Flink设置的TaskManagers, JobManagersJVM参数配置堆外内存。

OutOfMemoryError:Metaspace

该异常通常表明JVM元空间限制配置得太小。您可以尝试加大对JVM元空间选项TaskManagers 或JobManagers

IOException:Insufficient number of network buffers

这仅与TaskManager有关。

异常通常表明配置的网络内存 大小不足。您可以尝试通过调整以下选项来增加网络内存

Container Memory Exceeded

如果Flink容器尝试分配超出其请求大小(Yarn,Mesos或Kubernetes)的内存,则通常表明Flink没有预留足够的本机内存。当容器被部署环境杀死时,您可以通过使用外部监视系统或从错误消息中观察到此情况。

如果在JobManager进程中遇到此问题,您还可以通过设置选项排除可能的JVM Direct Memory泄漏来启用JVM Direct Memory限制 。jobmanager.memory.enable-jvm-direct-memory-limit

如果使用RocksDBStateBackend,并且禁用了内存控制,则可以尝试增加TaskManager的托管内存

或者,您可以增加JVM Overhead

 

参考来源:

https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/memory/mem_trouble.html#outofmemoryerror-java-heap-space

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值