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>

然后将spark-2.1.0-yarn-shuffle.jar包拷贝到其他nodemanager的classpath路径下:

cp /opt/cdh/spark-2.1.0-bin-2.6.0-cdh5.14.0/yarn/spark-2.1.0-yarn-shuffle.jar /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hadoop-yarn/lib

最后重启yarn

猜你喜欢

转载自www.cnblogs.com/niutao/p/10837105.html