当任务数量> 1时,纱线杀死容器。执行人数

时间:2016-06-13 20:39:50

标签: scala hadoop apache-spark yarn bigdata

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

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

到第二轮,我的意思是执行者完全执行它的第一个任务,但是一旦它开始执行给它的第二个任务,纱线就会杀死它。当纱线杀死容器(执行者)时,一个新的容器(执行者)显然会产生,而这次,除非执行给予它的任务很好,但是第二个任务失败了。对应于每个任务的输入数据几乎相同,因此内存要求也必须相同。但无论如何,无论我多少增加执行程序的内存,问题就会发生。我还确保在程序中正确关闭了所有资源。那么,这个非常恼人的问题可能是什么原因呢?

P.S:我也尝试增加spark.yarn.executor.memoryOverhead,但这也没有解决问题。

0 个答案:

没有答案