查看其它 1 个回答呱呱爱吃瓜的回答

呱呱爱吃瓜呱呱爱吃瓜数据仓库工程师银行

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

以上介绍的参数需在 yarn-site.xml 中设置,相关参数如下:

yarn.scheduler.minimum-allocation-mb :最小可申请内存量,默认是 1024

yarn.scheduler.minimum-allocation-vcores :最小可申请 CPU 数,默认是 1

yarn.scheduler.maximum-allocation-mb :最大可申请内存量,默认是 8096

yarn.scheduler.maximum-allocation-vcores :最大可申请 CPU 数,默认是 4

对于规整化因子,不同调度器不同,具体如下:

FIFO 和 Capacity Scheduler ,规整化因子等于最小可申请资源量,不可单独配置。

Fair Scheduler :规整化因子通过参数 yarn.scheduler.increment-allocation-mb 和 yarn.scheduler.increment-allocation-vcores 设置,默认是 1024 和 1 。

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

银行 · 2020-02-07
浏览1090

回答者

呱呱爱吃瓜
数据仓库工程师银行
擅长领域: 大数据服务器数据库

呱呱爱吃瓜 最近回答过的问题

回答状态

  • 发布时间:2020-02-07
  • 关注会员:3 人
  • 回答浏览:1090
  • X社区推广