当创建集群时未选择关联 RSS 集群,后续将 Spark 关联 RSS 或对于已关联的集群取消关联时,需要通过修改 Spark 集群配置的方式进行,下面对修改方式进行说明。
需要修改 spark-defaults.conf 配置文件(将以下参数改为下述值,如缺少可以新增)。
spark.sql.adaptive.localShuffleReader.enabled false spark.shuffle.manager org.apache.spark.shuffle.celeborn.SparkShuffleManager spark.celeborn.master.endpoints celeborn-master-0.celeborn-master-svc.emr-xxx.svc.cluster.local,celeborn-master-1.celeborn-master-svc.emr-xxx.svc.cluster.local,celeborn-master-2.celeborn-master-svc.emr-xxx.svc.cluster.local spark.celeborn.client.spark.shuffle.writer hash spark.celeborn.client.push.replicate.enabled true spark.shuffle.service.enabled false spark.serializer org.apache.spark.serializer.KryoSerializer # Support Spark Dynamic Resource Allocation # Spark version < 3.5.0 不需要下述配置 # Required Spark version >= 3.5.0 spark.shuffle.sort.io.plugin.class org.apache.spark.shuffle.celeborn.CelebornShuffleDataIO
说明
spark.celeborn.master.endpoints 的地址需要从 RSS 集群的 celeborn.master.endpoints 配置项值取出。
# 设置shuffle manager为默认的sort shuffle manager spark.shuffle.manager org.apache.spark.shuffle.sort.SortShuffleManager spark.shuffle.sort.io.plugin.class :删除这个配置 spark.celeborn.master.endpoints (设置为空或者删除这个配置) spark.celeborn.client.push.replicate.enabled (设置为空、false 或者删除这个配置) spark.sql.adaptive.localShuffleReader.enabled (根据需求设置,可以设为默认的 false) spark.celeborn.client.spark.shuffle.writer (不设置或者删除这个配置) spark.shuffle.service.enabled false (根据需求设置,如使用了RSS 需要开启此参数)