Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我搜索了很多,我知道在每个map任务中,当缓冲区的内容达到阈值时,一个线程根据reduce的数量对数据进行分区。reduce数量在这里的作用是什么?为什么在 map 中会发生分区?它如何帮助 map 阶段?排序后,线程会将内容溢出到磁盘。它是如何发生的?我无法理解这里溢出的含义.....谢谢。
Map 需要在 reducer 轮询时对数据进行分区,并从每个 mapper 中提取与 reducer 相关的所有数据。
如果你反过来想象——reducer 从每个 map 中提取所有输出,那么你会将每个 mapper 的所有数据输出发送到每个 reducer——效率非常低。
因此,通过在映射器中进行分区,reducer 能够从每个映射器中查询并拉回它需要减少的数据。