我正在编写一个(当前)有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/