MapReduce 排序
MapReduce 默认排序
MapReduce 中Mapper 和 Reducer 中的 <Key,Value> 键值对,Key 值是基本类型,那么将按照基本类型对应的 Key 进行排序(如 int类型的 IntWritable,long 类型的 LongWritable,以及 String类型的 Text,默认都是按照升序排序)
MapReduce 自定义排序
当 MapReduce 的默认排序无法满足业务需求,则需要自定义排序规则,具体如下:
-
自定义 key 的数据类型
实现
WritableComparable
接口 -
自定义 key 的排序规则
重写 compare() 方法
注意事项
- MapReduce 排序仅局限每个分区,无法实现全局排序
- MapReduce 排序在 Map 分组后 Reduce 聚合前进行,不会对 Reduce 聚合后的结果再进行排序