Каковы различия между сортировщиком сравнения и групповым компаратором в Hadoop?

В чем разница между Сортировщиком сравнения и Групповым компаратором в Hadoop?

Ответ 1

Чтобы понять GroupComparator, см. мой ответ на этот вопрос -

Какая польза от компаратора группировки в карте hadoop уменьшает

SortComparator. Используется для определения того, как сортируются ключи вывода карты.

Выдержки из книги Hadoop - Окончательное руководство:

Порядок сортировки для ключей определяется следующим образом:

  • Если свойство mapred.output.key.comparator.class установлено либо явно, либо вызов setSortComparatorClass() в Job, тогда используется экземпляр этого класса. (В старый API эквивалентный метод setOutputKeyComparatorClass() на JobConf.)

  • В противном случае ключи должны быть подклассом WritableComparable, а зарегистрированные используется компаратор для ключевого класса.

  • Если нет зарегистрированного компаратора, тогда используется RawComparator, который десериализует потоки байтов сравниваются с объектами и делегируются методу WritableComparable s compareTo().

SortComparator Vs GroupComparator в одном слое: SortComparator решает, как сортировать ключи вывода карты, а GroupComparator решает, какие ключи вывода карты в редукторе идут на один и тот же метод вызова метода.

Ответ 2

Групповой компаратор решает, какие ключи вывода карты будут объединены (сгруппированы) в один ключ, и, конечно же, будут сгруппированы все коллекции значений. Обычно он принимает первый ключ как единственный для сводной коллекции.

SortComparator решает, как ключи будут сортироваться в вводе сокращения. По умолчанию используется естественный порядок.