hadoop:0 reducer和identity reducer之间的区别?

时间:2012-05-17 05:44:24

标签: hadoop mapreduce

我只是想确认我对0减速器和减速器之间差异的理解。

  • 0 reducer表示将跳过reduce步骤,mapper输出将是最终输出
  • 身份减少器意味着洗牌/分拣仍然会发生?

4 个答案:

答案 0 :(得分:37)

你的理解是正确的。我将其定义如下: 如果您不需要对地图结果进行排序 - 您将0设置为减少,并且该作业仅称为地图。
如果需要对映射结果进行排序,但不需要任何聚合 - 则选择identity reducer。
为了完成图片,我们有第三种情况:我们确实需要聚合,在这种情况下我们需要reducer。

答案 1 :(得分:5)

使用Identity Reducer的另一个用例是将所有结果合并到<#of reducers>中。输出文件。如果您使用Amazon Web Services直接写入S3,这可能很方便,特别是如果映射器输出很小(例如grep /搜索记录),并且您有很多映射器(例如1000)。

答案 2 :(得分:3)

这取决于您的业务需求。如果您正在进行wordcount,则应减少地图输出以获得总结果。如果您只想将单词更改为大写,则不需要缩小。

答案 3 :(得分:3)

“No Reducer”(mapred.reduce.tasks = 0)和“Standard reducer”之间的主要区别是IdentityReducer (mapred.reduce.tasks = 1等)当你使用“No reducer”时,在MAP阶段之后没有分区和改组过程。因此,在这种情况下,您将从映射器获得“纯”输出而无需进一步处理。它有助于开发和调试puproses,但不仅如此。