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

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

组件: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

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

第三步:找到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 on yarn 动态资源分配报错的解决:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:spark_shuffle does not exist 随笔 第3张

然后将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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄