【问题标题】:What are the differences between Sort Comparator and Group Comparator in Hadoop?Hadoop中的Sort Comparator和Group Comparator有什么区别?
【发布时间】:2013-04-17 13:50:07
【问题描述】:

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

【问题讨论】:

    标签: hadoop bigdata


    【解决方案1】:

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

    What is the use of grouping comparator in hadoop map reduce

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

    Hadoop - Definitive Guide 一书的节选:

    键的排序顺序如下:

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

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

    3. 如果没有注册比较器,则使用 RawComparator 反序列化 字节流被比较成对象并委托给WritableComparablecompareTo()方法。

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

    【讨论】:

      【解决方案2】:

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

      SortComparator 决定键在reduce 的输入 中的排序方式。默认情况下,它使用自然排序。

      【讨论】:

        猜你喜欢
        • 2016-04-26
        • 1970-01-01
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多