使用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系统。
- 选择“集群 > 待操作集群的名称 > 服务 > Spark2x > 配置”。单击“全部配置”。
- 选择“SparkResource2x > 默认”,修改以下参数:
表1 参数列表 参数
默认值
修改结果
spark.shuffle.service.enabled
false
true
- 重启Spark2x服务,配置生效。
如果需要在Spark2x客户端用External Shuffle Service功能,需要重新下载并安装Spark2x客户端。