Reducer可以用作Combiner的情况:
满足 a.b=b.a或者a.(b.c)=(a.b).c
Combiner能用就用,不一定是用Reducer来替代。
设置Reducer为Combiner类的方法:
job.setCombinerClass(WCReducer.class);
Partitioner Class:决定把k-v数据块发给哪个Reducer
Reducer Class:和mapper里面的方法几乎一模一样,工作流程不再赘述。
1. setup方法 框架只调用一次
2、reduce方法
reduce(KEY key, Iterable<VALUE> values,Context context)
这个key呢,他可能来自不同的Mapper,他是一个集合。
就是简单一个对value求和
3.cleanup方法
4.run方法