在以下场景中,我没有看到Hadoop中reducers的值:
Map Tasks生成唯一键(因为我们可以将Map / Reduce功能合并在一起)
Map Tasks的输出大小太大(如果等待reducers开始工作,这会耗尽内存)
如果我们有任何不需要对密钥进行分组和排序的功能
如果我错了,请纠正我 .
如果有人能给我一个关于减速器的好处以及何时应该使用它的真实例子,我将不胜感激 .
当您需要执行聚合/分组等操作时,Reducer是有益的(或必需的) .
仅供参考:Reducer用于为来自不同映射器的键分组不同的值 . 因此,对于不需要分组/聚合的用例,没有必要使用reducer(您可以将其设置为Zero,意味着Map-Only作业) .
我能想到的一个快速用例是 - 你想随机将一个大文件拆分成多个零件文件 . 在这种情况下,您将向仅限 Map 的作业提供大文件(例如100G) . 所有 Map 都将读取一大块文件并作为文件的一部分写入 .
1 回答
当您需要执行聚合/分组等操作时,Reducer是有益的(或必需的) .
仅供参考:Reducer用于为来自不同映射器的键分组不同的值 . 因此,对于不需要分组/聚合的用例,没有必要使用reducer(您可以将其设置为Zero,意味着Map-Only作业) .
我能想到的一个快速用例是 - 你想随机将一个大文件拆分成多个零件文件 . 在这种情况下,您将向仅限 Map 的作业提供大文件(例如100G) . 所有 Map 都将读取一大块文件并作为文件的一部分写入 .