跳到主要内容

远程 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 服务。