Fair Scheduler 队列设置经验总结
由于公司的hadoop集群的计算资源不是很充足,需要开启yarn资源队列的资源抢占。在使用过程中,才明白资源抢占的一些特点。在这里总结一下。
只有一个队列的资源小于设置的 最小资源时,才有可能启动资源抢占。
只要所有的资源队列的最小资源之和小于等于集群的资源总量就都是合理的。如果最小资源之和大于集群的资源总量,同时又开启了资源抢占模式,那么资源调度就会不停的处于资源抢占的模式(这样的逻辑当然是不合理的了)。
所有队列的最大资源配置之和可以大于集群的资源总量是合理的
每个队列的最大资源配置 只要小于等于集群的资源总量 就也是合理的。
下面是我配置的一个例子:
drf
300
0 mb, 0 vcores
0
0.0
24000 mb, 12 vcores
48000 mb, 24 vcores
12
3.0
12000 mb, 6 vcores
24000mb, 12 vcores
6
2.0
12000 mb, 6 vcores
24000 mb, 12 vcores
6
1.0
5
该示例中:有三个资源队列default,online,develop,bi四个队列;集群的共有24core,48G内存。
资源占用最小和最大比例:
default: 0% - 0%
online: 50% - 100%
develop: 25% - 50%
bi: 25% - 50%
该示例的最小资源之和是100%,最大资源之和可以大于资源总量,最大值可以根据实际中的情况来划分。
例如我们在线上要优先保证线上资源,所以online队列的最小资源比例为70%,最大为100%;develop,和bi的最小资源都是可以为0的,这样才能保证在紧急情况下online可以抢占100%的资源。
资源占用最小和最大比例:
default: 0% - 0%
online: 70% - 100%
develop: 0% - 50%
bi: 0% - 50%
上面是Fair Scheduler 资源划分的一点经验。下面要总结一下fair-Scheduler.xml配置个各个属性说明。
(二)schedulingPolicy 的理解
fair
(三)queuePlacementPolicy 的理解
(四)fair-Scheduler.xml配置个各个属性说明。