Томас ответ объясняет немного. Уже слишком поздно, но я хотел бы добавить следующее для будущих читателей:
Partitioner вступает в игру только между картой и фазой сокращения и не играет никакой роли при записи от редуктора к выходным файлам.
Я не верю, что запись промежуточных данных в hdfs является обязательным требованием в большинстве случаев, хотя есть некоторые методы, которые можно применить для того же.
Когда вы пишете из редуктора в hdfs, ключи автоматически сортируются, и каждый редуктор записывает в ОДИН РАЗДЕЛИТЕЛЬНЫЙ файл. Основываясь на методе compareTo
, ключи сортируются. Поэтому, если вы хотите выполнить сортировку по нескольким переменным, перейдите к классу пользовательских ключей, который расширяет WritableComparable
, и реализуйте методы write
, readFields
и compareTo
. Теперь вы можете контролировать способ сортировки ключей, основываясь на реализации compareTo