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

时间:2015-07-30 15:59:21

标签: apache-spark yarn

您好我有一个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

我使用以下命令在yarn-client模式下安排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的新手。提前谢谢。

3 个答案:

答案 0 :(得分:30)

我有一个非常类似的问题。无论我们分配给他们多少内存,我都会丢失许多遗嘱执行人。

如果您使用纱线的解决方案是设置$number = ctype_digit($_GET['number']) ? $_GET['number'] : ""; $lines = mysql_query("SELECT * FROM [table] WHERE Number=\"$number\""); ,或者如果您的群集使用mesos,则可以尝试使用--conf spark.yarn.executor.memoryOverhead=600

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:-5)

我也面临同样的问题。对我来说,删除日志并释放更多hdfs空间。