Apache spark shuffle:为什么即使在映射方面进行排序后我们也会对reducer端进行重新排序

问题描述 投票:1回答:1

最近我想了解Spark如何使用Sort shuffle。我发现spark对mapper方面进行排序,然后使用tim排序在reducer端使用相同的东西。

如果我们已经在mapper方面进行了排序,为什么我们不再重复使用那些重新排序,考虑排序是否代价高昂?

注意:Tim排序采取排序列表进行处理。

apache-spark
1个回答
0
投票

在reducer方面,BlockStoreShuffleReader从多个map任务中获取shuffle数据。尽管map任务对自己的数据进行了排序,但由于reducer需要合并来自多个源的数据,因此必须在所有获取的数据中进行组合排序。

© www.soinside.com 2019 - 2024. All rights reserved.