spark-shell在yarn模式下启动遇到的问题解决

今天在yarn模式下启动spark-shell时遇到了两个问题,记录一下解决法方法

问题1

在spark安装目录下运行如下命令

1
./bin/spark-shell --master yarn --deploy-mode client

遇到了如下问题

1
2
3
cluster.YarnClientSchedulerBackend: Yarn application has already exited with state FINISHED!
client.TransportClient: Failed to send RPC 6944697363527404148 to /10.4.20.48:59952: java.nio.channels.ClosedChannelException
....

如图

解决办法

在hadoop的yarn的配置文件yarn-site.xml下添加如下两个配置

1
2
3
4
5
6
7
8
9
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>

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

重启yarn后问题解决,如图

问题2

每次启动yarn模式下启动spark-shell或者提交任务时,都会弹出一个警告,然后uploading resource(打包spark jars并上传)到hdfs上

1
WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.


在这里有时会卡很久

解决办法

在hdfs上创建目录:

1
hadoop fs -mkdir /user/spark/spark_jars

上传spark的jars(spark1.6 只需要上传spark-assembly-1.6.0-SNAPSHOT-hadoop2.6.0.jar)

1
hadoop fs -put /home/spark/app/spark/jars/* /user/spark/spark_jars/

在spark的conf的spark-default.conf 添加配置

1
spark.yarn.jars=hdfs://spark01:9000/user/spark/spark_jars/*

spark01是我的master节点主机名

问题解决

打赏

请我喝杯咖啡吧~

支付宝
微信