跳到主要内容

远程 Shuffle 服务

使用 Celeborn 的远程 shuffle 服务​

Apache Celeborn 是一种远程 shuffle 服务,使 MR3 能够将 mapper 生成的中间数据存储在 Celeborn worker 节点上,而不是本地磁盘上。Reducer 直接从 Celeborn worker 请求中间数据,从而无需 MR3 shuffle handler(或 Hadoop shuffle 服务)。

celeborn-map-reduce

由于中间数据存储在 Celeborn worker 节点而不是本地磁盘上,使用 Celeborn 的关键好处之一是 MR3 现在在本地磁盘上只需要一半的空间。此外,使用 Celeborn 使 MR3 能够直接处理 reducer 端 mapper 的输出(跳过上图中的步骤 3 和 4),因此在执行典型查询时消除了超过 95% 的本地磁盘写入。

对本地磁盘存储的更低要求在公共云上运行 MR3 时尤为重要,因为 1)附加到每个节点的本地磁盘总容量有限,2)附加本地磁盘价格昂贵。

Celeborn 官方支持 Spark 和 Flink。我们扩展了 MR3 的运行时系统以使用 Celeborn 进行远程 shuffle 服务。