概念
YARN的资源预约机制是一种资源保证机制,当应用程序申请的资源无法得到满足的时候,YARN会将当前的资源预约到一个node上,未来只要有一定的资源释放并且node上的资源满足预约资源的需求,node就会分配资源。
预约机制
https://blog.csdn.net/zhanyuanlin/article/details/78799341这篇文章已经讲得足够清楚,我就不做无用功了,这里总结以下几点。
- 如果一个node被一个container预约,那么在
unreserve之前,该node是不能分配其它container了。 什么情况会unreserve? container对应的资源在当前node上分配、container对应的资源在其它node上面分配或者container被取消;- 一个node同一时间只能被一个application的contianer预约,一个container可能会多次被预约,如果由于资源不够而发生多次预约,那么node上面的预约的contianer会被更新成最新的。
- 由于YARN只要收到NodeUdate事件就会处理Contianer的分配,并且container预约成功和container分配成功处理不一样,container分配成功会减少其对应ResourceRequest的容器数而container预约成功并不会,所以一个container对应的resource可能会在多个node上面预约。