您的位置:首页 > 运维架构

hadoop 排序

2016-03-11 01:37 330 查看
排序顺序
     默认由RawComparator 控制
     if   mapred.output.key.comparator.Class 被设置 /  JobConf  setOutputKeyComparatorClass  方法
              使用这个类的实例作为比较器
     else  自定义比较器必须继承WritableComparator , 比较对象必须 是 继承 WritableComparable子类
     如果没有自定义的comparator, 使用RawComparator进行反序列化 , 委托给 WritableComparable 子类的 compareTo方法
     

全局排序

二次排序

Map:   Mapper -> [first sort] to generate partition(extends

Partitioner<CombinationKey,IntWritable>  
 
job.setPartitionerClass(DefinedPartition.
class
 )
-> 
                               [second sort] for sorting cross-group and in-group data
(
 
job.setSortComparatorClass(DefinedComparator.
class
 )
-> 
                               shuffle

Reduce:  [group] ( { [sort1, 1],[sort1,2] } => [sort1,(1,2)] ) (
job.setGroupingComparatorClass(DefinedGroupSort.
class
)
)  =>  reduce

实例参考  http://zengzhaozheng.blog.51cto.com/8219051/1379271
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: