当我们在Hadoop MapReduce中使用多个输入时,combiner如何工作



我正在Hadoop MapReduce(Java)中实现reduce side Join,为此我使用多个输入,例如有两个文件Customers和Orders,我考虑cid(customer_id)加入它们。

我的问题:

  1. 在上面的程序中,如果我写组合器类它是如何工作的,据我所知组合器是映射器级别的聚合器,但是在这种情况下,我们有两个映射器逻辑。
  2. 是否将组合逻辑应用于两个映射器逻辑
  3. 是否有任何方法可以将组合逻辑应用于任何一个映射逻辑

Combiner聚合映射器输出,您可以用任何您认为更好的代码覆盖它。Combiner被称为Mini-Reducer,它继承了reducer类。

请记住,组合器不能保证在所有情况下都运行,所以你的映射器输出应该总是足够作为一个reducer的输入。

和我不得到你的问题,尽管你的映射器输入是,映射器输出将是一些键值数据。组合器只是聚合或简单地将它们相加,假设您的映射器输出为:

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

组合后的输出将是:

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

相关内容

  • 没有找到相关文章

最新更新