我正在编写一个(当前)有3个map-reduce阶段的map-reduce程序。我需要对第三阶段的输出进行另一个归约-我可以使用身份映射(获取(key, value)并在不更改的情况下输出它们),但我不想做额外的映射(明智的时间和资源),并希望简单地将它们传递给 reducer 。

可能吗?如果是这样,我该如何编码“职位”?

我可以发布整个代码(如果有帮助的话)(也许我在前三个阶段中做过多余/不足的事情)。

感谢您的帮助。

最佳答案

我认为仅使用减少作业是不可行的。此外,如果要在化简器1的输出上使用化简器2,则可以使映射2为一个整体,这仅表示map2将不对化简器1的输出执行任何操作,并将其传递给化简器2。

只使用reducer的作业不可行的主要原因是因为reducer节点从map节点的输出读取数据,这就是为什么需要map的原因。我建议您访问此页面,这将使您清楚了解 map 减少作业的工作原理(www.javacrunch.in/MR.jsp)。

希望这可以解决您的查询

关于java - Java Hadoop- reducer 的输入可以是 reducer 的输出吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41708112/

10-11 05:00