15

Hadoop中的Sort ComparatorGroup Comparator有什么区别?

4

2 回答 2

24

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

hadoop map reduce中分组比较器有什么用

SortComparator:用于定义 map 输出键如何排序

Hadoop - 权威指南一书的摘录:

键的排序顺序如下:

  1. 如果该属性mapred.output.key.comparator.class已设置,无论是显式设置还是通过调用setSortComparatorClass()Job,都将使用该类的实例。(在旧 API 中,等效方法是setOutputKeyComparatorClass()on JobConf。)

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

  3. 如果没有注册的比较器,则RawComparator使用 a 将被比较的字节流反序列化为对象并委托给WritableComparable'scompareTo()方法。

SortComparator 与 GroupComparator 合二为一: SortComparator决定 map 输出键的排序方式,同时GroupComparator决定 Reducer 中的哪些 map 输出键转到同一个 reduce 方法调用。

于 2013-04-24T07:30:54.363 回答
7

Group Comparator决定将哪些映射输出键合并(分组)为一个键,当然所有值的集合也将被分组。通常它需要第一个键作为摘要收集的唯一键。

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

于 2015-09-14T00:21:45.480 回答