Hadoop中的Mapper和Reducer

时间:2013-11-22 04:25:02

标签: hadoop cloud elastic-map-reduce

我对Hadoop的实现感到困惑。

我注意到当我使用多个映射器和reducer运行我的Hadoop MapReduce作业时,我会得到许多part-xxxxx文件。同时,一个密钥只出现在其中一个密钥中。

因此,我想知道MapReduce是如何工作的,只有一个键只能转到一个输出文件?

提前致谢。

2 个答案:

答案 0 :(得分:3)

MapReduce流程中的随机播放步骤负责确保具有相同键的所有记录在同一个reduce任务中结束。有关MapReduce数据流的说明,请参阅this Yahoo tutorial。这部分名为Partition& Shuffle表示

  

每个地图任务可以向任何分区发射(键,值)对;无论哪个映射器是它的原点,同一个键的所有值总是一起减少。

答案 1 :(得分:2)

<强>随机

Reducer的输入是映射器的排序输出。在此阶段,框架通过HTTP获取所有映射器的输出的相关分区。

<强>排序

框架在此阶段按键分配Reducer输入(因为不同的映射器可能输出相同的密钥)。

洗牌和分拣阶段同时发生;正在提取地图输出时,它们会被合并。

我从这里得到了这个

https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html

看看它,我希望这会有所帮助