Yarn 资源调度中的规整化因子介绍

  为了易于管理和调度资源,Hadoop YARN内置了资源规整化算法,它规定了最小可申请资源量、最大可申请资源量和资源规整化因子,如果应用程序申请的资源量小于最小可申请资源量,则YARN会将其大小改为最小可申请量,也就是说,应用程序获得资源不会小于自己申请的资源,但也不一定相等;如果应用程序申请的资源量大于最大可申请资源量,则会抛出异常,无法申请成功;规整化因子是用来规整化应用程序资源的,应用程序申请的资源如果不是该因子的整数倍,则将被修改为最小的整数倍对应的值,公式为ceil(a/b)*b,其中a是应用程序申请的资源,b为规整化因子。对于不同的资源调度器其规整化因子的配置也不同,具体如下:

  • FIFO和Capacity Scheduler: 规整化因子等于最小可申请资源量,不可单独配置。
  • Fair Scheduler:规整化因子通过参数yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores设置,默认是1024和1。不过在Hadoop3.1.x 中这个2个参数已不推荐使用了,分别由 yarn.resource-types.memory-mb.increment-allocation 和 yarn.resource-types.vcores.increment-allocation替代。

  因此,应用程序申请到的资源量可能大于申请的资源量,比如YARN的最小可申请资源内存量为1024,规整因子是1024,如果一个应用程序申请1500内存,则会得到2048内存,如果规整因子是512,则得到1536内存。

参考:
https://hadoop.apache.org/docs/r3.1.0/hadoop-yarn/hadoop-yarn-site/FairScheduler.html#Configuration
https://blog.csdn.net/suifeng3051/article/details/45477773

发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CPP_MAYIBO/article/details/102638585