Несколько мест говорят, что по умолчанию # сокращения в задаче Hadoop равны 1. Вы можете использовать символ mapred.reduce.tasks, чтобы вручную установить количество редукторов.Как улей выбирает количество редукторов для работы?
Когда я запускаю работу Hive (на Amazon EMR, AMI 2.3.3), у нее есть некоторое количество редукторов больше одного. Глядя на настройки работы, что-то установило mapred.reduce.tasks, я полагаю, что Hive. Как он выбирает этот номер?
Примечание: здесь некоторые сообщения во время работы улой работы, которая должна быть подсказкой:
...
Number of reduce tasks not specified. Estimated from input data size: 500
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapred.reduce.tasks=<number>
...
Хороший вопрос. В частности, когда куст выбирает «Количество задач сокращения, определяемых во время компиляции», и когда он выбирает «оценивать по размеру входных данных»? – ihadanny
добавил, что в ответе ниже –