通常情况下,这说的是NodeManager中一个长期在运行的辅助服务,用于提升Shuffle计算性能。默认为false,表示不启用该功能,他对计算任务本身不是很友好
之所以一般不开启,是因为它提升的只是executor在GC或者其他原因无法向外提供数据的时候,使用一个辅助服务去从executor拿数据为其他需要的地方,而且不使用它的原因,最主要的还是它的使用需要拥有外部辅助shuffle服务,比如yarn的NodeManager中的External shuffle Service服务
如果你在on yarn模式使用它,你需要在yarn-site.xml中配置如下信息
<property>
<name>yarn.nodemanager.aux-services</name>
<value>spark_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<property>
<name>spark.shuffle.service.port</name>
<value>7337</value>
</property>
对于spark来说你需要在spark-defaults.conf中添加如下配置
spark.shuffle.service.enabled true
spark.shuffle.service.port 7337
这两个配置是个是开启这个任务,一个是服务的端口