mapReduce流程的可干预组件

1.combiner:相当于一个reduce,在map端后,可以大大的减少IO
2.partition:分区,默认是根据key的hash值%reduce的数量,自定义分区是继承Partitioner类,重写getPartition()分区的方法,自定义分区可以有效的解决数据倾斜问题
3.group:分组,继承WritableComparetor类,重写compare()方法,自定义分组(就是定义reduce输入的数据分组规则)
4.sort:排序,继承WritableComparetor类,重写compare()方法,根据自定义的排序方法,将reduce的输出结果进行排序
(如果没有继承WritableComparetor类的话,分组跟排序分组规则跟排序规则都一样,可以自己写一个看看,一般key完全一样才能分到一个组; 继承的话,根据自己定义的方法来决定)
5.分片:可以通过调整客户端的blocksize,minsize,maxSize
 

猜你喜欢

转载自blog.csdn.net/onway_goahead/article/details/89439785