1.生产上 job去申请调度资源时:
规则:
FIFO 先进先出
Capacity 计算
Fair 公平 生产
图解:
FiFO:表示 先进先出调度器
假设总共由40G的内存容器,job1在0点时进入运行作业,那么40G的内存全部运行job1,当job2在1点请求运行的时候,它需要等job1作业全部运行完成释放资源以后,再运行job2作业。
Capacity:表示 计算调度器
假设总共有40G的内存容器,它会分成两部分,5G的内村容器留给小的作业运算,它会一直运算小作业,不释放,剩下的35G运行其他作业。
Fair:表示 公平调度器(生产上都是用这一种)
假设一共有42G的内存容器,0点的时候job1任务先申请运算,然后会将40G的容器全部用作job1的运算中,当1带点时,job2请求运算作业,这时会分给job2部分容器,让它同时运行,
> 注意:这时会有延迟的,必须要等到job1有资源释放出来之后,才会给job2运算。
CDH 动态资源池 放置规则
<queuePlacementPolicy>
<rule name="specified" />
<rule name="primaryGroup" create="false" />
<rule name="default" queue="ABC"/>
</queuePlacementPolicy>
JOB -queue ABC
主组 jepson bigdata root
生产上怎么配置:
参考官网:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
<?xml version="1.0"?>
<allocations>
<queue name="ABC">
<minResources>10000 mb,10vcores</minResources>
<maxResources>60000 mb,30vcores</maxResources>
<weight>2.0</weight>
<schedulingPolicy>fair</schedulingPolicy>
</queue>
<queue name="XYZ">
<minResources>20000 mb,0vcores</minResources>
<maxResources>80000 mb,0vcores</maxResources>
<weight>3.0</weight>
<schedulingPolicy>fifo</schedulingPolicy>
</queue>
<queueMaxResourcesDefault>40000 mb,20vcores</queueMaxResourcesDefault>
<queuePlacementPolicy>
<rule name="specified" />
<rule name="primaryGroup" create="false" />
<rule name="default" queue="ABC"/>
</queuePlacementPolicy>
</allocations>
https://netjs.blogspot.com/2018/04/fair-scheduler-in-yarn-hadoop.html