Я использую CDH5.1.0 (hadoop 2.3.0). 2 узла имен (2x 32 ГБ ОЗУ, 2 ядра) и 3 узла данных (3x 16 ГБ ОЗУ, 2 ядра)
Я планирую задания mapreduce от одного пользователя в очереди по умолчанию (другие пользователи и другие очереди не настроены).
При использовании планировщика емкости происходит следующее: я могу отправить несколько заданий, но параллельно выполняются только 2 задания (состояние «выполняется»).
При использовании честного планировщика происходит следующее: я отправляю несколько заданий, и 4 задания устанавливаются в статус «выполняется» кластером/планировщиком. Эти задания остаются на 5% прогресса навсегда. Если отдельные задания уничтожаются, новое задание получает статус «выполняется» на 5%, опять же, без дальнейшего прогресса. Задания начинают выполняться только после того, как останется менее 4 заданий и в очередь больше не будет отправлено ни одного задания.
Я перенастраивал кластер несколько раз, но так и не смог увеличить количество запущенных заданий при использовании планировщика емкости или избежать зависания заданий при использовании справедливого планировщика.
Мой вопрос: как настроить кластер/пряжу/планировщик/динамические и статические пулы ресурсов, чтобы планирование работало?
Вот некоторые параметры конфигурации:
yarn.scheduler.minimum-allocation-mb = 2GB
yarn.scheduler.maximum-allocation-mb = 12GB
yarn.scheduler.minimum-allocation-vcores = 1
yarn.scheduler.maximum-allocation-vcores = 2
yarn.nodemanager.resource.memory-mb = 12GB
yarn.nodemanager.resource.cpu-vcores = 2
mapreduce.map.memory.mb = 12GB
mapreduce.reduce.memory.mb = 12GB
mapreduce.map.java.opts.max.heap = 9.6GB
mapreduce.reduce.java.opts.max.heap = 9.6GB
yarn.app.mapreduce.am.resource.mb = 12GB
ApplicationMaster Java Maximum Heap Size = 788MB
mapreduce.task.io.sort.mb = 1GB
Я оставил статические и динамические пулы ресурсов с настройками по умолчанию (cloudera) (например, параметр Max Running Apps пуст)