У меня есть 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.<queue-name>.capacity
и максимальную емкость по свойству yarn.scheduler.capacity.root.<queue-name>.maximum-capacity
.
Насколько я понимаю, выше 2 свойств устанавливают АБСОЛЮТНУЮ емкость и АБСОЛЮТНУЮ максимальную емкость соответственно. Это означает, что 100% потока очереди равны 70% общей емкости кластера, и он может заполнить до 100% емкости очереди, что также составляет 70% общей емкости кластера.
Теперь проблема заключается в том, что когда «поток» очереди заполнен на 66,4% (т.е. когда используемая емкость: 66,4% и абсолютная используемая емкость: 46,5%), тогда новые задания переходят в состояние ожидания, которое отправляется в очередь «поток», говоря: «ожидание выделения контейнера AM, его запуска и регистрации в RM».
Когда я проверил конфигурацию очереди в пользовательском интерфейсе пряжи, он показывает настроенную максимальную емкость: 70,0% и абсолютную настроенную максимальную емкость: 70,0%, но в соответствии с конфигурацией «поток» очереди может быть заполнен до используемой емкости: 100% и абсолютной используемой емкости: 70%
Есть идеи, почему новые задания не могут использовать пропускную способность потока очереди на 100%?