首页 > 解决方案 > Yarn 上的 Spark 无法发送 RPC 和 Slave 丢失

问题描述

我想在Yarn,Hadoop2.7.3上部署spark2.3.2。
但是当我运行时:

spark-shell

总是提出错误:

ERROR TransportClient:233 - Failed to send RPC 4858956348523471318 to /10.20.42.194:54288: java.nio.channels.ClosedChannelException
...
ERROR YarnScheduler:70 - Lost executor 1 on dc002: Slave lost

dc002 和 dc003 都会引发 ERRORsFailed to send RPCSlave lost.

我有一个主节点和两个从节点服务器。它们都是:
CentOS Linux release 7.5.1804 (Core)具有 40 cpu 和 62.6GB 内存以及 31.4 GB 交换空间。

我的HADOOP_CONF_DIR

export HADOOP_CONF_DIR=/home/spark-test/hadoop-2.7.3/etc/hadoop

我的/etc/hosts

10.20.51.154 dc001
10.20.42.194 dc002
10.20.42.177 dc003

在 Hadoop 和 Yarn Web UI 中,我可以看到 dc002 和 dc003 节点,我可以在 hadoop 中对 yarn 运行简单的 mapreduce 任务。
但是当我运行spark-shellSparkPi示例程序时

./spark-submit --deploy-mode client --class org.apache.spark.examples.SparkPi spark-2.3.2-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.3.2.jar 10

, 错误总是引发。
我真的很想知道为什么会发生这些错误。

标签: apache-sparkhadoophadoop-yarn

解决方案


我通过更改yarn-site.xmlconf 文件解决了这个问题:

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

推荐阅读