Flink on Yarn 提交任务由于内存不足产生的异常调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink on Yarn 提交任务由于内存不足产生的异常调试相关的知识,希望对你有一定的参考价值。

参考技术A     1.首先考虑为什么会出现这两个异常,重点讨论第一个异常!

这里图上没有画出container ,但是我们要理解这个关系,要是还是不理解不了那再接下来看这个图:

看 flink-conf.yaml 中的内存指定,不难看出 一个TaskManager 指定4094m 共为32个slots ,不难算出 一个slot 所占的资源 128m,那这个资源到底够不够你的任务运行的呢?

这个需要你自己来衡量了,所有后来我通过指定:

这时在运行的时候 就没有了这个异常了。

但是有的时候我将并行度指定为 1 ,会出现什么问题了 , 程序很可能直接报异常  java.lang.OutOfMemoryError,因为什么单个slot的内存太小了 不足以启动这个程序,所以直接报内存溢出了,很明显是你指定的机器内存太小了 。这异常常常发生在测试的时候程序没有任务问题,一旦放到生产就会经常碰到。因为生产环境的数据量一般都要比测试大的多,所以会经常出现这种内存的问题。

以上是关于Flink on Yarn 提交任务由于内存不足产生的异常调试的主要内容,如果未能解决你的问题,请参考以下文章

Flink On Yarn模式, 限制任务上传的数量

Flink on Yarn三部曲之三:提交Flink任务

flink on yarn之per-job方式部署超时的一种解决方法

flink:第二种模式:多个yarn session模式

Flink on Yarn 远程 debug 应用提交流程及源码分析

Flink 实战系列Flink on yarn 为什么 Allocated CPU VCores 显示不正确?