日常工作中会涉及到各种资源分配等问题,跨部门,跨业务等等,这里介绍基于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
- yarn.scheduler.fair.allow-undeclared-pools false
该项勾选之后会使用username队列,如果没有会自动创建,并且占比(权)为1
CDH配置放置规则
1.登录管理界面,进入动态资源池配置
2.删除全部默认配置规则
3.添加新的三条规则,注意按照顺序
- 规则一:
- 规则二:
- 规则三:
4.创建完成的规则如下图所示,并刷新最新配置
配置资源池
1.资源池创建默认是在root父池下,即上图的池名称为 root.test 程序制定时可使用如下命令
set mapreduce.job.queuename=root.test;
2.最大运行数量,e.g. 配置为2
启动三个程序,其中两个正常跑平分资源,另外一个app处于ACCEPTED状态,等待其他任务跑完后,才会跑
此时再启动一个,在其他队列的任务,发现可以正常运行,说明我们配置已生效
3.设置最大使用资源
设置资源为该池使用最大资源,如权设置的大,最大资源设置小,则权失效。