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