java—在hadoop mapreduce中使用多个输入时组合器的工作原理

d7v8vwbk  于 2021-07-13  发布在  Hadoop
关注(0)|答案(1)|浏览(335)

我正在hadoopmapreduce(java)中实现reduce-side-join,为此我使用了多个输入,例如有两个文件customers和orders,我加入它们时考虑了cid(customer\u id)。
我的问题:
在上面的程序中,如果我写combiner类,它将如何工作,据我所知,combiner是Map器级别的聚合器,但是在这种情况下,我们有两个Map器逻辑。
合并器逻辑会应用于两个Map器逻辑吗
有没有什么方法可以将组合器逻辑应用于任何一个Map器逻辑

yiytaume

yiytaume1#

组合器聚合Map器输出,您可以用任何您认为更好的代码覆盖它。combiner被称为mini reducer并继承reducer类。
记住,combiner并不能保证在所有情况下都能运行,所以Map器输出应该始终足以作为reducer输入。
我不明白你的问题,不管你的Map器输入是什么,Map器输出将是一些关键值数据。combiner只是聚合或简单地相加,假设Map器输出为:

{'ali':2, 'jack':4, 'ali':3}

合并后的输出将是:

{'ali':5, 'jack':4}

相关问题