Yarn 不断杀死 EMR 上的 Spark 应用程序主服务器

Rah*_*ley 5 amazon-emr apache-spark

我正在 EMR emr-4.3.0 上运行 Spark 应用程序,有 1 个主节点和 4 个节点

每一颗都有 5GB 内存和 2 个核心。

以下是我的火花提交选项

--class com.mobi.vserv.driver.Query5kPids1
--num-executors 4
--执行程序内存 4g
--执行程序核心 2
--驱动程序内存 4g

但我不断收到以下错误

错误 executor.CoarseGrainedExecutorBackend:驱动程序 10.225.19.144:56334 已解除关联!正在关闭。

最后,Yarn 杀死了应用程序主机

错误 ApplicationMaster:收到信号 15:SIGTERM

1)我可以进一步改进 num-executors 和 executor-cores 的 Spark-Submit 选项吗?

2)我在性能图中看到只有2个节点CPU的利用率高于50%,而另外2个节点的CPU利用率低于5%。

3) 有趣的是,我在 2 个节点和 1 个主节点上运行了相同的应用程序,并且使用 Spark-submit 中给出的相同配置,并且应用程序运行成功。那么 4 个节点出现这种行为的原因是什么

Abh*_*and 2

当使用yarn运行spark时,手动强制执行程序实例的数量从来都不是一件好事,spark.dynamicAllocation.enabled=true而是使用。

这样spark就会礼貌地询问yarn,是否可以有更多的资源来运行,如果yarn有,就会授予。

要找到场景的根本原因,您需要查看yarn的应用程序ui(名称节点上的默认端口8088)上有多少内存。由于您要为每个执行器指定自己的内存,因此yarn只能分配该大小的实例,而且yarn必须为下一个任务保留一组vCore和内存保留。

如果有问题,您可以使用“yarn -applicationId app_name_id”来查找纱线上的应用程序日志。