繁体   English   中英

使用 YARN 客户端模式时如何防止 Spark Executor 丢失?

[英]How to prevent Spark Executors from getting Lost when using YARN client mode?

我有一个 Spark 作业,它在本地运行良好,数据较少,但是当我在 YARN 上安排它执行时,我不断收到以下错误,慢慢地所有执行程序都从 UI 中删除,我的工作失败了

15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 8 on myhost1.com: remote Rpc client disassociated
15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 6 on myhost2.com: remote Rpc client disassociated

我使用以下命令在纱线客户端模式下安排 Spark 作业

 ./spark-submit --class com.xyz.MySpark --conf "spark.executor.extraJavaOptions=-XX:MaxPermSize=512M" --driver-java-options -XX:MaxPermSize=512m --driver-memory 3g --master yarn-client --executor-memory 2G --executor-cores 8 --num-executors 12  /home/myuser/myspark-1.0.jar

这里有什么问题? 我是 Spark 的新手。

我有一个非常相似的问题。 无论我们为他们分配多少内存,我都会丢失许多执行程序。

如果您使用纱线,解决方案是设置--conf spark.yarn.executor.memoryOverhead=600 ,或者如果您的集群使用 mesos,您可以尝试--conf spark.mesos.executor.memoryOverhead=600

在 spark 2.3.1+ 中,配置选项现在是--conf spark.yarn.executor.memoryOverhead=600

似乎我们没有为 YARN 本身留下足够的内存,因此容器被杀死了。 设置后,我们遇到了不同的内存不足错误,但不是相同的丢失执行程序问题。

您可以按照此 AWS 帖子计算内存开销(以及其他要调整的 spark 配置): best-practices-for-successfully-managing-memory-for-apache-spark-applications-on-amazon-emr

当我遇到同样的问题时,删除日志并释放更多的 hdfs 空间是可行的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM