У меня есть 4 очереди в корневой очереди со следующей конфигурацией.
|-------------|-----------------|---------------------|-------------------|
| Queue Name | Capacity (in %) | Max Capacity (in %) | User Limit Factor |
|-------------|-----------------|---------------------|-------------------|
| default | 10 | 30 | 10 |
|-------------|-----------------|---------------------|-------------------|
| thriftsvr | 5 | 30 | 10 |
|-------------|-----------------|---------------------|-------------------|
| stream | 70 | 70 | 10 |
|-------------|-----------------|---------------------|-------------------|
| batch | 15 | 30 | 10 |
|-------------|-----------------|---------------------|-------------------|
Я настроил емкость по параметру yarn.scheduler.capacity.root..capacity и max, по свойству yarn.scheduler.capacity.root..maximum-емкость.
Насколько я понимаю, выше 2 свойств задают емкость ABSOLUTE и максимальную емкость ABSOLUTE, что означает, что 100% потока очереди равно 70% от общей емкости кластера, и оно может заполнить до 100% емкости очереди, что также составляет 70% общей мощности кластера.
Теперь проблема в том, что когда очередь потока заполняется на 66,4% (т. Е. Когда используемая емкость: 66,4% и абсолютная использованная емкость: 46,5%), тогда новые задания переходят в состояние ожидания, которое отправляется в очередь очереди. «говоря, что контейнер AM будет выделен, запущен и зарегистрирован в RM».
Когда я проверял конфигурацию очереди в пользовательском интерфейсе пряжи, она отображала «Сконфигурированная максимальная емкость»: 70,0% и «Абсолютно сконфигурированная максимальная емкость»: 70,0%, но в соответствии с конфигурацией очередь «поток» можно заполнять до используемой емкости: 100% и «Абсолютная используемая емкость» : 70%
Есть идеи, почему новые задания не могут использовать емкость потока очереди до 100%?