首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yarn - yarn.scheduler.capacity.root.queue-name.maximum-capacity是如何工作的?

Yarn - yarn.scheduler.capacity.root.queue-name.maximum-capacity是如何工作的?
EN

Stack Overflow用户
提问于 2019-06-07 17:50:57
回答 3查看 1.7K关注 0票数 6

我在根队列下有4个队列,配置如下。

代码语言:javascript
复制
|-------------|-----------------|---------------------|-------------------|
| 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属性的最大容量。

我的理解是,以上两个属性分别设置了绝对容量和绝对最大容量。这意味着队列流的100%等于集群总容量的70%,它可以填满队列容量的100%,也就是集群总容量的70%。

现在,问题是当队列'stream‘填满了66.4% (即当已用容量: 66.4%,绝对已用容量: 46.5%)时,新作业进入挂起状态,通过说“等待AM容器被分配,启动并注册到RM”在队列'stream’中提交。

当我在yarn UI上检查队列配置时,它显示配置的最大容量: 70.0%和绝对配置的最大容量: 70.0%。但是根据配置,队列'stream‘可以填满,直到使用容量: 100%和绝对使用容量: 70%。

你知道为什么新的作业在100%之前都不能使用队列流的容量吗?

EN

回答 3

Stack Overflow用户

发布于 2019-11-19 23:03:28

我怀疑这里令人困惑的是.capacity.maximum-capacity属性都可以定义为

相对于父队列值百分比的资源值(浮点数,例如12.5)

  • absolute资源值(使用资源值语法,例如[memory=204800,vcores=122])

  • root

如果你还有任何问题,请一定要问。

要获得完整参考,只需阅读文档:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html#Queue_Properties

票数 4
EN

Stack Overflow用户

发布于 2020-03-13 17:36:36

我将以this book中的一个例子来解释yarn.scheduler.capacity.root.queue-name.maximum-capacity是如何工作的。

Capacity Scheduler配置文件示例,名为capacity-Scheder.xml。它在根队列下定义了两个队列,prod和dev,分别拥有40%和60%的容量。请注意,通过设置yarn.scheduler.capacity形式的配置属性来配置特定的队列,其中是队列的分层(点分)路径,如root.prod。

代码语言:javascript
复制
    <?xml version="1.0"?>
<configuration>
  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>prod,dev</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.dev.queues</name>
    <value>eng,science</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.prod.capacity</name>
    <value>40</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.dev.capacity</name>
    <value>60</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.dev.maximum-capacity</name>
    <value>75</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.dev.eng.capacity</name>
    <value>50</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.dev.science.capacity</name>
    <value>50</value>
  </property>
</configuration>

如您所见,dev队列被进一步划分为相等容量的eng队列和science队列。,以便当prod队列空闲时,开发队列不会用完所有群集资源,它的最大容量设置为75%。换句话说,prod队列始终有25%的集群可供立即使用。由于没有为其他队列设置最大容量,eng或science队列中的作业可能会使用所有dev队列的容量(最高可达集群的75% ),或者prod队列可能会使用整个集群。

有关队列配置的更多信息,请参阅YARN doc

票数 1
EN

Stack Overflow用户

发布于 2021-07-23 21:40:31

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-instances-guidelines.html

根据上面的链接,AWS已经从EMR版本6和更高版本删除了这些标签。

因此,这适用于EMR大于6的版本,但对于较低版本,删除核心标签可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56492002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档