当任务数>执行者数时终止容器

sxpgvts3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(216)

我有一个spark程序,当任务数=具有给定执行器内存的执行器数时,它运行得非常好。但是如果任务的数量大于执行者的数量,我在第二轮中得到以下错误。

Container killed by YARN for exceeding memory limits. 16.0 GB of 16 GB physical memory used. 
Consider boosting spark.yarn.executor.memoryOverhead.

对于第二轮,我的意思是执行者完美地执行了第一个任务,但是一旦开始执行第二个任务,Yarn就会杀死它。当yarn杀死容器(executor)时,一个新的容器(executor)会明显地生成,这次executor再次执行赋予它的任务,但在第二个任务上失败。每个任务对应的输入数据几乎相同,因此内存需求也必须相同。但不管怎样,不管我如何增加执行者的记忆,问题都会出现。我还确保我在我的程序中正确关闭了所有资源。那么,这个令人讨厌的问题的可能原因是什么呢?
p、 s:我也试着增加 spark.yarn.executor.memoryOverhead ,但这也没有解决问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题