首页 > 解决方案 > EMR (emr-5.26.0) 上的 CORE 节点的纱线队列容量未按预期工作

问题描述

用例 => 创建两个 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 节点,以便 Q2 始终可以使用 40%。请参阅YARN 文档以了解队列配置。了解本书中最大容量配置的另一个参考。

实际行为:Q1 使用超过 60%,即队列“Q1”的“Absolute Used Capacity”大于“Absolute Configured Max Capacity”。

这不符合YARN 文档。我想了解这种行为背后的原因。以及对此的替代解决方案。

更新 1: 这个问题似乎只存在于 CORE 节点。如果我在下面指定,它对任务节点按预期工作。yarn.scheduler.capacity.root.Q1.maximum-capacity: 60

EMR 在 YARN 节点标签下创建 CORE 节点为CORE。默认情况下,EMR 会创建此节点标签。更多关于YARN 节点标签使用 YARN 节点标签功能的 EMR 5.19.0 的信息。恕我直言,在为 CORE 节点使用 YARN 节点标签功能时,EMR 要么覆盖,要么破坏了 CORE 节点的此配置。

标签: apache-sparkhadoophadoop-yarnamazon-emrcapacity

解决方案


推荐阅读