Spark standalone模式下external shuffle服务运行方法及版本支持问题
Spark 3.1 Standalone模式External Shuffle Service支持说明
首先明确结论:Spark 3.1 完全支持Standalone模式下运行External Shuffle Service,没有取消该特性,只是2.x版本中单独的start-shuffle-service.sh启动脚本在3.x版本中被移除了,改为整合到Worker启动逻辑或支持通用命令启动。
两种启动方式
- 方式1:随Worker节点自动启动(推荐)
- 在所有Worker节点的
conf/spark-env.sh文件中添加如下配置:
export SPARK_WORKER_OPTS="-Dspark.shuffle.service.enabled=true -Dspark.shuffle.service.port=7337"- 正常启动Standalone集群即可,Worker进程启动时会自动拉起对应的External Shuffle Service进程,无需额外执行启动命令。
- 在所有Worker节点的
- 方式2:单独启动External Shuffle Service进程
不需要依赖单独的启动脚本,直接执行通用daemon命令即可:./sbin/spark-daemon.sh start org.apache.spark.deploy.ExternalShuffleService 1
作业使用配置
提交作业时,只需在提交参数或conf/spark-defaults.conf中添加如下配置,即可调用Standalone集群的External Shuffle Service:
spark.shuffle.service.enabled true
常见疑问说明
Spark 3.x版本仅保留了Mesos模式专属的start-mesos-shuffle-service.sh脚本,是因为Mesos模式的Shuffle Service实现逻辑和通用版本有差异,并不是Standalone模式不再支持该特性。
内容的提问来源于stack exchange,提问作者Dagang Wei
相关产品推荐
相关产品推荐

