yarn之调度

来源:互联网 发布:手机淘宝怎样上架宝贝 编辑:程序博客网 时间:2024/06/13 05:22

在yarn中,负责给应用分配资源的就是Scheduler。目前我们程序中选择的调度器是fairscheduler。
可以这样子理解:当提交一个大的job时,如果只有这一个job,则它获取的就是集群中所有资源;此时如果提交第二个job,这个fairscheduler就会分配一般资源给这个job,让两个job共享集群资源。当然其中一个任务完成后就会立即释放自己占用的资源,从而另一个任务又获取了全部系统资源。这样子就保证了高的资源利用率同时也能让小的任务可以及时完成。
faischeduler的配置
(1)设置yarn.resourcemanager.scheduler.classs的为org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
(2)设置fair-scheduler,添加队列。
例如用户A提交了应用,如果没有指定队列,则会提交到默认队列下。

三、基本队列配置
(1)minResources :最少资源保证量,设置格式为“X mb, Y vcores”;
(2) maxResources:最多可以使用的资源量,格式同上。保证每个对列使用的资源不会超过该队列的最多使用量;
(3) maxRunningApps:同时最多运行的应用程序数目;
(4) schedulingMode/schedulingPolicy:队列采用的调度模式,默认fair,还有fifo
(5) aclSubmitApps:可向队列中提交应用程序的Linux用户或用户组列表,默认“*”

Fair调度器采用了一套基于规则的系统来确定应用应该放到哪个队列。默认规则如下:

<queuePlacementPolicy><rule name="specified" /><rule name="user" /></queuePlacementPolicy>

说明:除非队列被准确的定义,否则会以用户名为队列名创建队列。
注:
当用户通过mapreduce.job.queuename指定队列启动作业,如果队列不存在,可以通过这个
yarn.scheduler.fair.allow-undeclared-pools配置禁止scheduler自动创建队列。

0 0
原创粉丝点击