MAPREDUCE-3451, 把fairScheduler引入到2.0.2-alpha, 本文介绍一下hadoop 2.0.2-alpha的fairscheduler. 包括调度算法和配置方法.
代码
在org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair包下, 主要包括如下的类:
各个类作用的简要描述:
1. AllocationConfigurationException, 如果配置文件出错会抛出此异常.
2. AppSchedulable 一个可以提交task的实体, 继承于Schedulable,
3. FairScheduler 调度器的主体部分
4. FairSchedulerConfiguration的配置常量和默认值
5. FairSchedulerEventLog 封装了LOG, 用于把调度事件写到指定的log文件中
6. FifoAppComparator 继承于Comparator, 对比两个AppSchedulable的大小, 首先是Priority, 然后是startTime, 最后对比ApplicationId.
7. FSQueue, fairscheduler中的组信息 类
8. FSQueueSchedulable继承于Schedulable, 一个可以提交task的实体
9. FSSchedulerApp继承于SchedulerApp, 从调度器的角度来看, 每个在RM中正在运行的应用程序都是此类的实例.
10. NewJobWeightBooster, 实现了WeightAdjuster接口, 用于更新AppSchedulable的权重, Weight.
11. QueueManager, 维护一个组队列, 并提供更新方法, fairscheduler调用.
12. Schedulable一个可以提交task的实体
13. SchedulingAlgorithms, 工具类, 包括fair scheduler使用到的调度算法.
14. SchedulingMode, enum类型, 包括FAIR, FIFO. 每个组内的调度模式.
15. 接口WeightAdjuster, 权重修改接口
Fairscheduler的原理
当 NM (NodeManager的简称)向RM (ResourceManager的简称)发送心跳后, 会调用调度器的nodeUpdate()方法,流程如下:
1. Processing the newly launched containers
2. Process completed containers
3. Assign new containers
a) Check for reserved applications
Reserved, 预留的意思, If we have have an application that has reserved a resource on this node already, we try to complete the reservation.
b) Schedule if there are no reservations. schedule at queue which is furthest below fair share.
i. 这里首先获取所有组(getQueueSchedulables), 然后对他们排序, 使用SchedulingAlgorithms. FairShareComparator类排序.
ii. 然后从第一个组开始, 把资源分配给它, 并开始组内分资源,
iii. 如果未分配给第一组, 则分给下一组, 如果分给了第一组, 则继续到第一步. 若未分配给第一个组, 或重复分配给某一组, 或大于maxAssign, 则退出循环.
SchedulingAlgorithms.FairShareComparator排序算法
两个组, 排序的规则是:
1. 一个需要资源, 另外一个不需要资源, 则需要资源的排前面
2. 若都需要资源的话, 对比 使用的内存占minShare的比例, 比例小的排前面, (即尽量保证达到minShare)
3. 若比例相同的话, 计算出使用量与权重的比例, 小的排前面, 即权重大的优先, 使用量小的优先.
4. 若还是相同, 提交时间早的优先, app id小的排前面.
配置方法
在RM的配置目录下的yarn-site.xml文件中增加配置项
1
2
3
4
|
<property>
<name>yarn.resourcemanager.scheduler. class </name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
|
在RM的配置目录下新建fair-scheduler.xml文件, 增加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?xml version= "1.0" ?>
<allocations>
<queue name= "sample_queue" >
<minResources>1000</minResources>
<maxResources>9000</maxResources>
<maxRunningApps>50</maxRunningApps>
<weight>2.0</weight>
<schedulingMode>fair</schedulingMode>
<aclSubmitApps> sample_queue,yuling.sh</aclSubmitApps>
<aclAdministerApps> sample_queue,yuling.sh</aclAdministerApps>
</queue>
<queue name= "default" >
<minResources>1000</minResources>
<maxResources>9000</maxResources>
<maxRunningApps>50</maxRunningApps>
<weight>2.0</weight>
<schedulingMode>fair</schedulingMode>
<aclSubmitApps> yuling.sh</aclSubmitApps>
<aclAdministerApps> a</aclAdministerApps>
</queue>
<userMaxAppsDefault>5</userMaxAppsDefault>
</allocations>
|
注意, 在yarn中, 提交作业的组验证已经放到了调度器中实现.
转载请注明出处:http://www.cnblogs.com/shenh062326/archive/2012/12/09/2810010.html
相关推荐
yarn 前端打包工具指定配置文件
YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...
详细描述 node环境安装与配置 npm环境配置以及仓库配置 yarn环境配置
yarn配置文件yarn配置文件yarn配置文件 配合nodejs和yarn使用
Ambari2.1.0安装配置(hadoop yarn spark集群安装配置)
深入解析YARN架构设计与实现原理,深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理
2.1.2 yarn.scheduler.fair.allow-undeclared-pools 2.2 资源池配置 2.3 放置规则设置 2.4 计划模式 2.5 用户限制 3 集群动态资源池规划 3.1 动态资源池规划样例1 3.2 动态资源池规划样例2 在Yarn中有三种调度器可以...
YARN HA 配置、启动与验证;YARN HA 配置、启动与验证;任务一 配置SSH无密钥登录(slave2为主节点);任务二 修改yarn-site.xml配置文件(一);任务二 修改yarn-site.xml配置文件(二);任务二 修改yarn-site.xml配置...
Yarn配置相关的文档,包括HDFS Federation和架构的配置
Hadoop技术内幕深入解析YARN架构设计与实现原理PDF,不可用于商业用途,如有版权问题,请联系删除!
Hadoop技术内幕深入解析YARN架构设计与实现原理
在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler。 Yarn任务调度机制 二、FIFO Scheduler FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于...
Hadoop技术内幕:深入解析YARN架构设计与实现原理 高清完整中文版PDF下载
一个计算yarn内存配置的python脚本yarn-util.py,该脚本有四个参数 参数 描述 -c CORES 每个节点CPU核数 -m MEMORY 每个节点内存总数(单位G) -d DISKS 每个节点的硬盘个数 -k HBASE 如果安装了Hbase则为True,...
YARN应用场景、原理与资源调度v2.pdfYARN应用场景、原理与资源调度v2.pdf
YARN动态资源池配置,YARN动态资源池配置,YARN动态资源池配置
Hadoop技术内幕:深入解析YARN架构设计与实现原理.pdf
主要描述hadoop之YARN的应用场景、实现原理与资源调度
董西城 ----Hadoop技术内幕-深入理解YARN架构设计与实现原理 ----带完整书签 ----完整版共394页