Hadoop中Sort Comparator和Group Comparator之间有什么区别?

时间:2013-04-24 06:22:00

标签: hadoop bigdata

Hadoop中排序比较器组比较器之间有什么区别?

2 个答案:

答案 0 :(得分:22)

要了解 GroupComparator ,请参阅我对此问题的回答 -

What is the use of grouping comparator in hadoop map reduce

SortComparator :用于定义地图输出键的排序方式

摘自Hadoop - 权威指南:

键的排序顺序如下:

  1. 如果设置属性mapred.output.key.comparator.class,则显式或通过 在Job上调用setSortComparatorClass(),然后使用该类的实例。 (在 旧API的等效方法是setOutputKeyComparatorClass()上的JobConf。)

  2. 否则,密钥必须是WritableComparable的子类,并且已注册 使用密钥类的比较器。

  3. 如果没有注册的比较器,则使用反序列化的RawComparator 字节流被比较为对象和委托给WritableComparable的{​​{1}}方法。

  4. SortComparator Vs GroupComparator in one liner: compareTo()决定地图输出键的排序方式,而SortComparator决定Reducer中的哪个地图输出键转到同一个reduce方法调用。

答案 1 :(得分:6)

群组比较器决定哪些地图输出键将统一(分组)为一个键,当然所有值集合也会被分组。通常,它会将第一个键作为摘要集合的唯一键。

SortComparator 决定如何在输入reduce 中对键进行排序。默认情况下,它使用自然排序。