2017-04-22 101 views
0

我没有看到一个值,在以下情况下Hadoop中的减速器:Hadoop中reducer的好处是什么?

  • map任务生成唯一的密钥(因为我们可以合并这两个地图/起来,从而降低功能)
  • 输出map任务的尺寸过大(这将耗尽内存,如果我们等待减速开始工作)

  • 如果我们不需要分组和按键的排序任何功能

如果我错了,请纠正我。

如果有人能给我一个真正的减速器的好处的例子,当它应该使用,我会很感激。

+1

第三条陈述是中心。如果你不需要分组,你应该设置减数的数量为0. – fi11er

+0

@ fi11er感谢前两条语句 –

+0

这一切都取决于你的任务,你不能在mappers上进行聚合(或者可以,但是你会可能写出你自己的减少)。 1)如果你有唯一的密钥,你大多不需要分组你的数据,所以你不需要reducer。 2)它不取决于大小,如果你想聚合地图输出,你会添加减速器。 – fi11er

回答

0

减速是有益的(或需要)时,你需要做的操作,如聚合/分组等。

FYI:减速机是为针对来自不同映射一个关键组不同的值。因此,对于不需要分组/聚合的用例,则没有必要使用reducer(可以将其设置为Zero,意味着仅Map-only作业)。

我能想到的一个快速使用案例是 - 您想随机将大文件分割为多个部分文件。在这种情况下,您将提供大文件(允许说100G)到仅限Map的作业。所有的地图都会读取一大块文件并作为文件的一部分进行写入。

+0

谢谢。前两条语句如:“地图任务生成唯一键......地图任务的输出大小太大......”我也认为这里不应该使用缩放器。你提供了一个Map Only Jobs的例子,你能否提供一个“真实”的例子(我现在的例子不是概念),就像我在文章中提到的那样。 –

相关问题