【发布时间】:2019-10-22 19:46:58
【问题描述】:
我在根队列下有 4 个队列,配置如下。
|-------------|-----------------|---------------------|-------------------|
| 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 属性设置了最大容量。
我的理解是,以上2个属性分别设置了绝对容量和绝对最大容量。这意味着队列流的 100% 等于集群总容量的 70%,它最多可以填充队列容量的 100%,也就是集群总容量的 70%。
现在,问题是当队列“流”被填满 66.4%(即当已用容量:66.4% 和绝对已用容量:46.5%)时,新作业处于待处理状态,并在队列“流”中提交' 通过说“等待 AM 容器被分配、启动和注册到 RM”。
当我在 yarn UI 上检查队列配置时,它显示 Configured Max Capacity: 70.0% & Absolute Configured Max Capacity: 70.0% 但根据配置,队列“流”可以填充到 Used Capacity: 100% & Absolute Used Capacity : 70%
任何想法,为什么新作业无法利用队列流的容量直到 100%?
【问题讨论】:
标签: hadoop-yarn capacity-planning