Yarn FairShare Scheduler
FairShare Scheduler
fair share scheduler集群资源调度的方式:
1、目的是所有应用程序随着时间的推移获得相等的资源份额;
2、可以让短应用程序在合理的时间内完成,而不会饿死长期应用程序;
3、支持队列优先级,根据优先级高低,分配给任务的资源不同;
下图为hadoop yarn web ui上的显示图:
Steady Fair share vs Instaneous Fair Share
steady fair share值和Instaneous Fair Share值都代表了当前分配给这个队列的最大资源值,也是队列在任何时候资源使用量不可以超过的值 ,但是他们存在区别。
- steady fair share,是一个静态值,是Yarn根据每个队列的minShare、maxShare和weight的配置计算得到的理论上应该分配给这个队列的最大资源,它与这个队列当前是否有app正在运行无关,只和我们在fair-scheduler.xml中的配置有关。
- Instaneous fair share则不同,它是根据当前集群中队列的运行状态的变化而实时变化的,即,如果一个队列上没有任何一个app在运行,即这个队列是inactive队列,那么,这个队列的instaneous fair share值是0,剩余的active队列会对集群资源进行瓜分,显然,如果集群中有队列从active变为inactive,那么剩余这些队列瓜分到的instaneous fair shared都会随之变大,反之,如果有一个队列从inactive变为active,则剩余每个队列的instaneous fair share会随之变小,即instaneous fair share会变小。
因此,yarn运行过程中实际上是用instaneous fair share值作为队列当前最大可使用的资源。
参考
https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
https://blog.csdn.net/zhanyuanlin/article/details/72667293