spark应用yarn模式提交多个应用,一个Running,其它处于accepted状态

我的个人博客

刚折腾起来的大数据集群,需要提交spark应用到yarn,每次只能运行一个,处于Running状态,其它处于Accepted状态,经过几天折腾,仍然只能运行两个spark应用,坚持了一下,终于解决。

在NodeManager中启动External shuffle Service

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

<property>
<name>yarn.nodemanager.aux-servicesname>
<value>spark_shufflevalue>
property>
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.classname>
<value>org.apache.spark.network.yarn.YarnShuffleServicevalue>
property>
<property>
<name>spark.shuffle.service.portname>
<value>7337value>
property>

配置参数描述
yarn.nodemanager.aux-servicesNodeManager中一个长期运行的辅助服务,用于提升Shuffle计算性能。
yarn.nodemanager.auxservices.spark_shuffle.classNodeManager中辅助服务对应的类。
spark.shuffle.service.portShuffle服务监听数据获取请求的端口。可选配置,默认值为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”。


分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!

点击浏览教程

你可能感兴趣的:(bigdata,spark)