Hadoop Reducer执行重新发生

时间:2014-01-11 11:30:31

标签: hadoop mapreduce reduce

所以Mapper只在包含给定数据块的给定从节点上执行一次,对吗?

但是Reducer可能会执行多次,因为相同的密钥可能源自许多Mapper节点,对吗?

对于单个MapReduce作业,每个Mapper上都会出现Shuffle和Sort吗?

1 个答案:

答案 0 :(得分:2)

一般来说,我认为执行Mapper / Reducer的次数并不合适,因为它们被广泛分布到不同的节点中,并由MRv1中的JobTracker或MRv2中的ResourceManager调度。但希望我的答案可以帮助你更好地理解。

问:“所以Mapper只在包含给定数据块的给定从节点上执行一次,对吗?”

答:大多数情况下都是正确的。通常情况下,hadoop会为每个输入分割启动一个映射器(默认情况下它与数据块的大小相同),但如果映射器失败,它将启动一个新映射器。

问:“但是Reducer可能会执行多次,因为相同的密钥可能源自许多Mapper节点,对吗?”

答:不正确。随机和排序过程将所有映射器输出合并为单个排序输入并馈送到reducer。 reducer的数量由用户定义。

问:“对于单个MapReduce作业,每个Mapper上都会出现Shuffle和Sort吗?”

答:不准确。随机阶段是执行过程hadoop以对映射器的输出进行排序并将其作为输入传递给reducer。当复制了所有映射器的输出后,排序阶段将合并所有输出并保持其排序顺序。因此,技术上每个映射器都会发生Shuffle和Sort的第一部分。

由于