考虑有3个顶级队列,Q1,Q2,q3.Capacity调度纱线如何管理hadoop中的额外资源?
Q1和Q2的用户提交自己的工作,以它们各自的队列,他们都保证得到他们分配的资源。现在没有被q3利用的资源必须被q1和q2利用。纱线在划分额外资源时考虑哪些因素?谁(q1,q2)获得偏好?
考虑有3个顶级队列,Q1,Q2,q3.Capacity调度纱线如何管理hadoop中的额外资源?
Q1和Q2的用户提交自己的工作,以它们各自的队列,他们都保证得到他们分配的资源。现在没有被q3利用的资源必须被q1和q2利用。纱线在划分额外资源时考虑哪些因素?谁(q1,q2)获得偏好?
在容量调度每个队列具有2个重要的特性,这确定调度(其在可用的总资源的百分比来定义的):
Capacity Scheduler以分层方式组织队列。 队列有2种类型“父”和“叶”队列。作业只能提交到叶队队列。
“ROOT”队列是所有其他队列的父项。
每个父队列根据需求对子队列进行排序(队列的当前使用容量是多少?是否服务不足或服务过多?)。
对于每个队列,比率(已用容量/总群集容量)给出了关于队列利用率的指示。 父队列始终优先处理最不充分的子队列。。
当将空闲资源分配给父队列时,资源将递归分配给子队列,具体取决于队列的当前使用容量。
在一个叶队列,容量的分布可能发生基于某些用户限制(例如配置参数:yarn.scheduler.capacity {队列路径} .minimum用户限制%的,确定每个用户保证拥有的最小队列容量)。
在你的例子中,为了简单起见,我们假设队列q1,q2和q3直接出现在“ROOT”下。如前所述,父队列会根据队列的使用情况对队列进行排序。
因为根本没有使用q3,父母可以在q1和q2之间分配q3的未使用资源。
可用的资源的分配基于以下因素:
如果Q1和Q2有足够的资源来继续安排自己的工作,那么就没有必要从Q3分配可用资源
如果q1和q2都达到最大容量(“yarn.scheduler.capacity。{queue-path} .maximum-capacity”,此配置会限制队列的弹性。队列不能超过配置的百分比这个参数),然后是自由水库OURCES不分配
如果队列Q1或Q2中的任何一个是服务不足,那么免费的资源被分配到服务不足的队列
如果同时Q1和Q2是服务不足,那么最不受欢迎的队列被赋予最高优先级。
谢谢@Manjunath Ballur – armourbear