gpt4 book ai didi

hadoop - yarn 如何管理 hadoop 中的额外资源?

转载 作者:可可西里 更新时间:2023-11-01 16:09:00 26 4
gpt4 key购买 nike

考虑有 3 个顶级队列,q1、q2、q3。Capacity Scheduler

q1 和 q2 的用户将他们的作业提交到各自的队列,他们保证获得分配的资源。现在 q3 未使用的资源必须由 q1 和 q2 使用。 yarn 在划分额外资源时考虑了哪些因素?谁(q1,q2)得到偏好?

最佳答案

Capacity Scheduler 中的每个队列都有 2 个重要属性(根据可用资源总量的百分比定义),它们决定了调度:

  • 保证队列的容量(由配置“yarn.scheduler.capacity.{queue-path}.capacity”决定)
  • 队列可以增长到的最大容量(由配置“yarn.scheduler.capacity.{queue-path}.maximum-capacity”决定)。这为队列的资源利用率设置了上限。队列的增长不能超过此限制。

容量调度器以分层方式组织队列。队列有两种类型"parent""leaf" 队列。作业只能提交到队列。

“ROOT”队列是所有其他队列的父队列。

每个父队列,根据需求对子队列进行排序(队列当前使用的容量是多少?是服务不足还是服务过多?)。

对于每个队列,比率(已用容量/总集群容量) 给出了有关队列利用率的指示。 父队列始终优先考虑服务最不足的子队列。

当空闲资源被分配给一个父队列时,资源被递归地分配给子队列,这取决于队列当前使用的容量。

在叶队列中,容量的分配可以根据特定的用户限制进行(例如配置参数:yarn.scheduler.capacity.{queue-path}.minimum-user-limit-percent, 确定每个用户保证拥有的最小队列容量)。

在您的示例中,为了简单起见,我们假设队列 q1、q2 和 q3 直接存在于“ROOT”下。如前所述,父队列根据队列的利用率对队列进行排序。

由于 q3 根本没有被利用,父节点可以在 q1 和 q2 之间分配 q3 未使用的资源。

可用资源的分配基于以下因素:

  1. 如果q1和q2都有足够的资源继续调度他们的作业,那么就没有必要分配q3的可用资源

  2. 如果 q1 和 q2 都达到最大容量 ("yarn.scheduler.capacity.{queue-path}.maximum-capacity",此配置会限制队列的弹性。队列不能超过这个参数配置的百分比),那么空闲资源不分配

  3. 如果队列 q1 或 q2 中的任何一个服务不足,则将空闲资源分配给服务不足的队列

  4. 如果 q1 和 q2 都处于服务不足状态,则服务状态最差的队列将获得最高优先级。

关于hadoop - yarn 如何管理 hadoop 中的额外资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com