Вариант использования => Создайте две очереди YARN: Q1 и Q2 с приведенной ниже конфигурацией.
[
{
"Classification": "capacity-scheduler",
"Properties": {
"yarn.scheduler.capacity.root.queues" : "Q1,Q2",
"yarn.scheduler.capacity.root.Q1.capacity" : "60",
"yarn.scheduler.capacity.root.Q2.capacity" : "40",
"yarn.scheduler.capacity.root.Q1.accessible-node-labels" : "*",
"yarn.scheduler.capacity.root.Q2.accessible-node-labels" : "*",
"yarn.scheduler.capacity.root.Q1.accessible-node-labels.CORE.capacity" : "60",
"yarn.scheduler.capacity.root.Q2.accessible-node-labels.CORE.capacity" : "40",
"yarn.scheduler.capacity.root.Q1.accessible-node-labels.CORE.maximum-capacity" : "60"
}
},
{
"Classification": "yarn-site",
"Properties": {
"yarn.acl.enable": "true",
"yarn.resourcemanager.scheduler.class": "org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler"
}
}
]
Ожидаемое поведение. Q1 не должен использовать более 60 % узлов CORE, чтобы 40 % всегда были доступны для Q2. См. документ YARN, чтобы понимать конфиги очереди. Еще одна ссылка для понимания конфигурации максимальной емкости в этой книге< /а>.
Фактическое поведение: Q1 использует более 60 %, т. е. "Абсолютная используемая емкость" для очереди "Q1" больше, чем "Абсолютная настроенная максимальная емкость".
Это не соответствует документации YARN. а>. Хотелось бы понять причину такого поведения. И альтернативы решения этого.
Обновление 1: эта проблема возникает только с узлами CORE. Если я укажу ниже, это работает, как и ожидалось, для узлов задач. yarn.scheduler.capacity.root.Q1.maximum-capacity: 60
EMR создает узлы CORE под меткой узла YARN как CORE. По умолчанию EMR создает эту метку узла. Подробнее об метках узлов YARN и EMR 5.19.0 с использованием YARN функция метки узла. ИМХО, при использовании функции метки узла YARN для узлов CORE EMR либо переопределяет, либо нарушает эту конфигурацию для узлов CORE.