Yarn资源调度
当同时向Yarn集群提交多个Job任务时,Yarn可以对任务进行资源(CPU、MEMORY)隔离。
容器调度策略是Yarn默认的调度策略,容器调度策略把整个集群资源划分成队列来管理,默认有一个root根队列,下面有一个默认default队列。
实际项目开发中,资源队列能够按需划分,比如将资源队列按项目环境划分为default、prod、dev三个队列,dev按部门再次划分eng、science两个资源队列
配置文件配置如下:hadoop-3.1.4/etc/hadoop/capacity-scheduler.xml, Resource Manager结点的一台主机上配置
name | value | description |
---|---|---|
yarn.scheduler.capacity.root.queues | default,prod,dev | 划分3个资 源队列 |
yarn.scheduler.capacity.root.default.capacity | 80 | 设置defalut队列资源占比 |
yarn.scheduler.capacity.root.prod.capacity | 10 | 设置prod队列资源占比 |
yarn.scheduler.capacity.root.dev.capacity | 10 | 设置dev队列资源占比 |
yarn.scheduler.capacity.root.prod.maximum-capacity | 80 | prod队列可使用资源上线 |
yarn.scheduler.capacity.root.dev.maximum-capacity | 75 | dev队列可使用资源上线 |
yarn.scheduler.capacity.root.dev.queues | eng,science | dev继续分为两个队列,分别为eng和science |
yarn.scheduler.capacity.root.dev.eng.capacity | 50 | 设置dev.eng队列资源占比 |
yarn.scheduler.capacity.root.dev.science.capacity | 50 | 设置dev.science队列资源占比 |
重启yarn
stop-yarn.sh
start-yarn.sh
执行测试程序:
hadoop jar /export/server/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi -Dmapreduce.job.queuename=eng 2 10
验证分析: