Hadoop中排序比较器和组比较器之间有什么区别?
答案 0 :(得分:22)
要了解 GroupComparator ,请参阅我对此问题的回答 -
What is the use of grouping comparator in hadoop map reduce
SortComparator :用于定义地图输出键的排序方式
摘自Hadoop - 权威指南:
键的排序顺序如下:
如果设置属性mapred.output.key.comparator.class
,则显式或通过
在Job上调用setSortComparatorClass()
,然后使用该类的实例。 (在
旧API的等效方法是setOutputKeyComparatorClass()
上的JobConf
。)
否则,密钥必须是WritableComparable
的子类,并且已注册
使用密钥类的比较器。
如果没有注册的比较器,则使用反序列化的RawComparator
字节流被比较为对象和委托给WritableComparable
的{{1}}方法。
SortComparator Vs GroupComparator in one liner:
compareTo()
决定地图输出键的排序方式,而SortComparator
决定Reducer中的哪个地图输出键转到同一个reduce方法调用。
答案 1 :(得分:6)
群组比较器决定哪些地图输出键将统一(分组)为一个键,当然所有值集合也会被分组。通常,它会将第一个键作为摘要集合的唯一键。
SortComparator 决定如何在输入reduce 中对键进行排序。默认情况下,它使用自然排序。