文档首页/
MapReduce服务 MRS/
组件操作指南(LTS版)/
使用Spark/Spark2x/
Spark Core性能调优/
使用External Shuffle Service提升Spark Core性能
更新时间:2025-08-01 GMT+08:00
使用External Shuffle Service提升Spark Core性能
操作场景
Spark系统在运行含shuffle过程的应用时,Executor进程除了运行task,还要负责写shuffle数据以及给其他Executor提供shuffle数据。当Executor进程任务过重,导致触发GC(Garbage Collection)而不能为其他Executor提供shuffle数据时,会影响任务运行。
External shuffle Service是长期存在于NodeManager进程中的一个辅助服务。通过该服务来抓取shuffle数据,减少了Executor的压力,在Executor GC的时候也不会影响其他Executor的任务运行。
操作步骤
- 登录FusionInsight Manager系统。
详细操作请参考访问集群Manager。
- 选择“集群 > 服务 > Spark2x > 配置”。单击“全部配置”。
- 选择“SparkResource2x > 默认”,修改以下参数:
表1 参数列表 参数
参数说明
取值示例
spark.shuffle.service.enabled
Spark应用可能连接运行在NodeManager进程中的长时间运行的辅助服务,用于提高shuffle的性能。
- true:启用External Shuffle Service。
- false:关闭External Shuffle Service
true
- 修改配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
- Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。
图1 修改Spark配置
在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。
如果需要在Spark客户端用External Shuffle Service功能,需要重新下载并安装Spark客户端,请参考使用MRS客户端。组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。
父主题: Spark Core性能调优