我正在编写一个map-reduce程序(目前)有3个map-reduce阶段。我需要做另一个减少到第三阶段减少的输出 - 我可以使用身份地图(花费(key, value)
并输出它们而不改变)但我不想做那个额外的地图(时间)和资源明智的)并希望简单地将它们传递给减速器。
有可能吗?如果是这样,我如何编码"工作"?
我可以发布我的整个代码,如果它可能有帮助(也许我在前3个阶段做了多余/不足的事情)。
感谢您的帮助。
答案 0 :(得分:2)
我认为使用仅减少工作是可行的。此外,如果你想在reducer 1的输出上使用reducer2,你可以将你的map 2作为一个统一,这意味着map2将不会对reducer 1输出执行任何操作,并将它传递给reducer 2。
仅限reducer作业不可行的主要原因是reducer节点从map节点的输出中读取数据,这就是需要map的原因。我建议你访问这个页面,这将清除你的地图减少工作如何运作的概念(www.javacrunch.in/MR.jsp)。
希望这可以解决您的问题