更新时间:2024-07-24 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的任务运行。

操作步骤

  1. 登录FusionInsight Manager系统。
  2. 选择“集群 > 待操作集群的名称 > 服务 > Spark2x > 配置”。单击“全部配置”。
  3. 选择“SparkResource2x > 默认”,修改以下参数:

    表1 参数列表

    参数

    默认值

    修改结果

    spark.shuffle.service.enabled

    false

    true

  4. 重启Spark2x服务,配置生效。

    如果需要在Spark2x客户端用External Shuffle Service功能,需要重新下载并安装Spark2x客户端。