CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置

日常工作中会涉及到各种资源分配等问题,跨部门,跨业务等等,这里介绍基于CDH版本的Yarn 公平调度(实际使用DRF调度)

不同时间配置不同资源参考(计划模式):https://datamining.blog.csdn.net/article/details/94613928 

DRF与FAIR区别:

DRF:根据 CPU 和内存公平调度资源。 (建议,CDH自带)

FAIR:仅根据内存公平调度资源。

 禁止自动创建队列

  • yarn.scheduler.fair.user-as-default-queue false

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第1张图片

  • yarn.scheduler.fair.allow-undeclared-pools false

该项勾选之后会使用username队列,如果没有会自动创建,并且占比(权)为1

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第2张图片

 CDH配置放置规则

1.登录管理界面,进入动态资源池配置

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第3张图片

2.删除全部默认配置规则

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第4张图片

3.添加新的三条规则,注意按照顺序

  • 规则一:

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第5张图片

  • 规则二:

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第6张图片

  • 规则三:

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第7张图片

4.创建完成的规则如下图所示,并刷新最新配置

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第8张图片

 配置资源池

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第9张图片

 1.资源池创建默认是在root父池下,即上图的池名称为 root.test 程序制定时可使用如下命令

set  mapreduce.job.queuename=root.test;

2.最大运行数量,e.g. 配置为2

启动三个程序,其中两个正常跑平分资源,另外一个app处于ACCEPTED状态,等待其他任务跑完后,才会跑

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第10张图片

此时再启动一个,在其他队列的任务,发现可以正常运行,说明我们配置已生效

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置_第11张图片

 3.设置最大使用资源

设置资源为该池使用最大资源,如权设置的大,最大资源设置小,则权失效。

你可能感兴趣的:(Hadoop,Yarn)