kee*_*kee 11 mapreduce reducers combiners
在许多MapReduce程序中,我看到一个reducer也被用作组合器.我知道这是因为这些计划的具体性质.但我想知道他们是否会有所不同.
Bin*_*erd 28
是的,组合器可以与Reducer不同,尽管您的Combiner仍将实现Reducer接口.组合器只能用于与工作有关的特定情况.Combiner将像Reducer一样运行,但仅限于每个Mapper的Key/Values输出的子集.
与Reducer不同,Combiner将具有的一个约束是输入/输出键和值类型必须与Mapper的输出类型匹配.
是的,他们肯定会有所不同,但我不认为你想要使用不同的课程,因为大多数情况下你会得到意想不到的结果.
组合器只能用于可交换(ab = ba)和关联{a.(bc)=(ab).c}的函数.这也意味着组合器可能只在您的键和值的子集上运行,或者可能根本不执行,但您仍希望程序的输出保持相同.
选择具有不同逻辑的不同类可能无法为您提供逻辑输出.