spark on yarn 动态资源分配报错的解决:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:spark_shuffle does not exist

 

组件:cdh5.14.0

spark是自己编译的spark2.1.0-cdh5.14.0

 

第一步:确认spark-defaults.conf中添加了如下配置:

spark.shuffle.service.enabled true   //启用External shuffle Service服务
spark.shuffle.service.port 7337 //Shuffle Service服务端口,必须和yarn-site中的一致
spark.dynamicAllocation.enabled true  //开启动态资源分配
spark.dynamicAllocation.minExecutors 1  //每个Application最小分配的executor数
spark.dynamicAllocation.maxExecutors 30  //每个Application最大并发分配的executor数
spark.dynamicAllocation.schedulerBacklogTimeout 1s 
spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 5s

第二步:进入yarn的配置页面,然后搜索yarn-site.xml

第三步:找到yarn-site.xml 的 NodeManager 高级配置代码段(安全阀)

然后添加如下内容:

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>spark_shuffle,mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
  <value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>

 

最后重启yarn

 

posted @ 2019-05-09 10:41  niutao  阅读(1776)  评论(0编辑  收藏  举报