0

我搜索了很多,我知道在每个map任务中,当缓冲区的内容达到阈值时,一个线程根据reduce的数量对数据进行分区。reduce数量在这里的作用是什么?为什么在 map 中会发生分区?它如何帮助 map 阶段?排序后,线程会将内容溢出到磁盘。它是如何发生的?我无法理解这里溢出的含义.....谢谢。

4

1 回答 1

0

Map 需要在 reducer 轮询时对数据进行分区,并从每个 mapper 中提取与 reducer 相关的所有数据。

如果你反过来想象——reducer 从每个 map 中提取所有输出,那么你会将每个 mapper 的所有数据输出发送到每个 reducer——效率非常低。

因此,通过在映射器中进行分区,reducer 能够从每个映射器中查询并拉回它需要减少的数据。

于 2013-02-02T14:02:16.220 回答