2020-7-21
参考书籍:Hadoop权威指南
排序(重点)
排序是MapReduce最重要的操作之一
MapTask和ReduceTask均会对数据按照Key进行排序,该操作属于MR默认行为。
任何应用程序中的数据均会被排序,不论是否需要
hadoop权威指南9·2·2
p254:
下面是我为大家翻译一遍上面这段话
1·若已经指定了排序规则,且设置好,API就会使用自己设置的排序规则
2·若未指定排序则类,Map和Reduce输出的键(key)必须是WritableComparable的子类!
3·如果你没重写排序规则,那么就会去调用父类的方法,最后会调用你key的compareTo方法。MR的数据必须排序!若mapreduce的主键也没有实现WritableComparable接口,就会抛出异常
注意:自己指定比较器必须是继承的可写比较器这个类WritableComparator
并且重写其compare方法
若不指定比较器,则MapOutKey和ReduceOutKey必须是WritableComparable的子类,实现的是接口
writablecomparable
接口里只给你定义了compareTo方法,所以必须实现这个方法