【发布时间】:2017-09-19 15:16:13
【问题描述】:
在以下场景中,我看不到 Hadoop 中的 reducer 的值:
- Map 任务生成唯一键(因为我们可以将 Map/Reduce 功能合并在一起)
Map Tasks 的输出大小太大(如果我们等待 reducer 开始工作,这会耗尽内存)
如果我们有任何不需要对键进行分组和排序的功能
如果我错了,请纠正我。
如果有人能给我一个减速器的好处的真实例子,以及何时应该使用它,我将不胜感激。
【问题讨论】:
-
第三条语句是中心。如果你不需要分组,你应该将reducer的数量设置为0。
-
@fi11er 谢谢前两条语句
-
这完全取决于您的任务,您不能在映射器上进行聚合(或者可以,但您可能会为此编写自己的 reduce)。 1)如果你有唯一的键,你大多不需要对你的数据进行分组,所以你不需要reducer。 2)它不依赖于大小,如果你想聚合地图输出,你将添加reducer。
-
@fi11er 谢谢兄弟,但我注意到,在监控 Hadoop 中的任务时,reducers 直到 Mappers 完成他们的任务才真正执行他们的任务。如果映射器输出像二进制文件一样大,这可能会耗尽内存(容器错误)。这就是我在第二个陈述中的意思。不是建议或假设是真实的。这就是为什么我要问什么可能是解决方案。是不使用reducers还是自己写reducers。关键是如果reducer在一个映射器完成后同时启动不会有问题,但它会等到映射器完成。
标签: hadoop mapreduce hadoop2 reduce reducers