apache-spark - 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 节点的此配置。
解决方案
推荐阅读
- arrays - 无法找到代码的失败测试用例
- ios - 是否可以跟踪用户从 App Store 的下载?
- ethereum - 如何将空字节传递给 Remix 中的solidity 函数?
- regex - 请帮助使用 .htaccess 更改网站网址
- openhtmltopdf - OpenHTMLtoPDF 将字符显示为 #
- neoscms - Neos 编辑器 - 页面重新加载后删除的节点重新出现
- python - 在 Google Colab 中确定路径
- python - Python 中我的 try-except 中的 while-loop
- flutter - 可注入的 get_it Flutter 的性能
- python - 选择列表中每个列表的第一个元素