hadoop中排序比较器和组比较器有什么区别?
bvjxkvbb1#
要了解groupcomparator,请参阅我对这个问题的回答-分组比较器在hadoop map reduce中有何用途sortc公司omparator:used to 定义Map输出键的排序方式《hadoop-权威指南》一书节选:键的排序顺序如下所示:如果财产 mapred.output.key.comparator.class 通过显式或调用 setSortComparatorClass() 在job上,则使用该类的一个示例(在旧的api中,等价的方法是 setOutputKeyComparatorClass() 在 JobConf .)否则,键必须是 WritableComparable ,并使用密钥类的注册比较器。如果没有注册的比较器,那么 RawComparator 用于将要比较的字节流反序列化为对象并委托给 WritableComparable 的 compareTo() 方法。一行中的sortcomparator与groupcomparator: SortComparator 决定Map输出键的排序方式 GroupComparator 决定reducer中的哪些map输出键转到同一reduce方法调用。
mapred.output.key.comparator.class
setSortComparatorClass()
setOutputKeyComparatorClass()
JobConf
WritableComparable
RawComparator
compareTo()
SortComparator
GroupComparator
ryoqjall2#
组比较器决定哪些Map输出键将被合并(分组)为一个键,当然所有值的集合也将被分组。通常它将第一个键作为摘要收集的唯一键。sortcomparator决定如何在reduce的输入中对键进行排序。默认情况下,它使用自然排序。
2条答案
按热度按时间bvjxkvbb1#
要了解groupcomparator,请参阅我对这个问题的回答-
分组比较器在hadoop map reduce中有何用途
sortc公司omparator:used to 定义Map输出键的排序方式
《hadoop-权威指南》一书节选:
键的排序顺序如下所示:
如果财产
mapred.output.key.comparator.class
通过显式或调用setSortComparatorClass()
在job上,则使用该类的一个示例(在旧的api中,等价的方法是setOutputKeyComparatorClass()
在JobConf
.)否则,键必须是
WritableComparable
,并使用密钥类的注册比较器。如果没有注册的比较器,那么
RawComparator
用于将要比较的字节流反序列化为对象并委托给WritableComparable
的compareTo()
方法。一行中的sortcomparator与groupcomparator:
SortComparator
决定Map输出键的排序方式GroupComparator
决定reducer中的哪些map输出键转到同一reduce方法调用。ryoqjall2#
组比较器决定哪些Map输出键将被合并(分组)为一个键,当然所有值的集合也将被分组。通常它将第一个键作为摘要收集的唯一键。
sortcomparator决定如何在reduce的输入中对键进行排序。默认情况下,它使用自然排序。