Celeborn 现阶段已支持作为 Spark、Flink 引擎的 Remote Shuffle 服务。EMR 针对 Spark 引擎提供了快捷集成配置支持。
Celeborn 作为可选服务,需要您在创建集群时或创建集群后主动勾选安装,本文假设您的集群已经安装 Celeborn 服务。
EMR 针对 Spark 引擎提供了快捷集成配置支持,暂不支持 Flink 引擎,您可以参考官方文档配置 Flink 集成 Celeborn 服务。
对于已经安装了 Celeborn 服务的集群,您可以在 EMR 控制台“集群详情 - 服务列表 - Spark”页面点击 “Enable Shuffle Service” 按钮为 Spark 一键配置集成 Celeborn 服务,该配置会在 Spark 服务重启后生效。如果您希望关闭 Spark 与 Celeborn 服务的集成,同样可以通过再次点击“Enable Shuffle Service”按钮,并重启 Spark 服务生效。
Spark 集成 Celeborn 服务配置项说明(配置项位于 spark-defaults.conf
配置文件):
配置项 | 参数值 | 说明 |
---|---|---|
spark.shuffle.manager | org.apache.spark.shuffle.celeborn.SparkShuffleManager | 固定值 |
spark.shuffle.service.enabled | false | 固定值 |
spark.celeborn.master.endpoints | Celeborn 服务 Master 节点列表,格式为 <celeborn-master-ip>:<celeborn-master-port> ,多个以英文逗号 , 分隔 | |
spark.sql.adaptive.enabled | true | 可选,启用 Spark AQE,同时关闭 local shuffle reader 以获取更好的性能 |
spark.sql.adaptive.skewJoin.enabled | true | |
spark.sql.adaptive.localShuffleReader.enabled | false |
您可以在 EMR 控制台“集群详情 - 服务列表 - Celeborn - 服务参数”页面修改 Celeborn 服务相关配置。常用的配置项如下表所示:
配置项 | 参数值 | 说明 |
---|---|---|
CELEBORN_MASTER_MEMORY | 2GB | Master 节点堆内存大小 |
CELEBORN_WORKER_MEMORY | 1GB | Worker 节点堆内存大小 |
CELEBORN_WORKER_OFFHEAP_MEMORY | 1GB | Worker 节点堆外内存大小 |
celeborn.storage.activeTypes | HDD,SSD | 存储介质类型,可以是 HDD、SSD 或 HDFS |
celeborn.worker.flusher.buffer.size | 256K | Worker 节点单个 fluster 的缓冲区大小 |
更多关于 Celeborn 的配置项可以参考 官方配置指南。