JobPlus知识库 IT 大数据 文章
spark应用yarn模式提交多个应用,一个Running,其它处于accepted状态

以前只是开发,现在到了一家大数据刚起步公司,需要提交spark应用到yarn,每次只能运行一个,处于Running状态,其它处于Accepted状态,经过几天折腾,仍然只能运行两个spark应用,坚持了一下,终于解决。

在NodeManager中启动External shuffle Service。

a. 在“yarn-site.xml”中添加如下配置项:

<property>

<name>yarn.nodemanager.aux-services</name>

<value>spark_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>

<value>org.apache.spark.network.yarn.YarnShuffleService</value>

</property>

<property>

<name>spark.shuffle.service.port</name>

<value>7337</value>

</property>


配置参数描述 
yarn.nodemanager.aux-services :NodeManager中一个长期运行的辅助服务,用于提升Shuffle计算性能。 
yarn.nodemanager.auxservices.spark_shuffle.class :NodeManager中辅助服务对应的类。 
spark.shuffle.service.port :Shuffle服务监听数据获取请求的端口。可选配置,默认值为“7337”。 
b. 添加依赖的jar包

拷贝“${SPARK_HOME}/lib/spark-1.3.0-yarn-shuffle.jar”到“${HADOOP_HOME}/share/hadoop/yarn/lib/”目录下。


note:高版本没有lib目录,有jars目录,比如说spark-2.0.2-yarn-shuffle.jar就在${SPARK_HOME}/yarn目录下,将其复制到${HADOOP_HOME}/share/hadoop/yarn/lib目录下。


c. 重启NodeManager进程,也就启动了External shuffle Service。

Spark应用使用External shuffle Service。

在“spark-defaults.conf”中必须添加如下配置项:

spark.shuffle.service.enabled true 
spark.shuffle.service.port 7337

说明

1.如果1.如果“yarn.nodemanager.aux-services”配置项已存在,则在value中添加 “spark_shuffle”,且用逗号和其他值分开。 
2.“spark.shuffle.service.port”的值需要和上面“yarn-site.xml”中的值一样。 配置参数描述 spark.shuffle.service.enabled :NodeManager中一个长期运行的辅助服务,用于提升Shuffle 计算性能。默认为false,表示不启用该功能。 spark.shuffle.service.port :Shuffle服务监听数据获取请求的端口。可选配置,默认值 为“7337”。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
400人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序