MapReduce中的reduce是否立即运行,还是等待地图完成?

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

刚刚阅读完以下关于MapReduce的论文。一个问题-减少等待所有地图操作完成的时间,还是可以在某些结果可用后开始呢?

mapreduce
2个回答
1
投票

在MapReduce作业中,在所有Map作业完成之前,reduce不会开始执行reduce方法。精简器会在它们可用时立即开始从映射器中复制中间键值对。这就是为什么我们能够在Job-tracker中看到当某些映射仍在运行时减少显示几%的原因..


1
投票

Haskell具有内置的map和reduce(称为fold),并且其执行顺序是不确定的(只要您不尝试评估整个对象,您甚至可以在无限列表上进行操作)。因此,您可以选择任何一种方式。

[如果您询问Google是如何做到的,我不确定,但是他们可能会对其进行设置,以使reduce尽可能最大地消耗他们正在映射的列表,因为那样就不会必须将已处理的值保留在内存中。

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