Yarn继续在EMR上杀死Spark Application master

时间:2016-03-29 13:31:31

标签: apache-spark amazon-emr

我在EMR emr-4.3.0上运行了一个带有1个Master和4个节点的spark应用程序

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

以下是我的spark-submit选项

  

- com.mobi.vserv.driver.Query5kPids1   --num-executors 4
  --executor-memory 4g
  --executor-cores 2
  --driver-memory 4g

但我一直收到以下错误

  

ERROR executor.CoarseGrainedExecutorBackend:Driver   10.225.19.144:56334解除了关联!关机。

最后Yarn杀死了应用程序大师

  

ERROR ApplicationMaster:RECEIVED SIGNAL 15:SIGTERM

1)我可以进一步改进num-executors和executor-cores的spark-submit选项。

2)我在Perfomance Graph中看到,只有2个节点CPU的利用率高于50%,而其他2个节点的利用率低于5%。

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

1 个答案:

答案 0 :(得分:0)

当使用纱线运行spark时,手动强制执行者实例的数量永远不是一件好事,而是使用spark.dynamicAllocation.enabled=true

这样火花会礼貌地询问纱线,如果它可以有更多的资源来运行,如果纱线有,它会授予它。

要查找场景的根本原因,您需要查看纱线应用程序ui上的内存纱线数量(namenode上的默认端口8088)。 由于您为每个执行程序指定了自己的内存,因此yarn只能分配该大小的实例,而且,yarn必须为下一个任务保留一组vCore和Memory reserve。

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