Yarn公平调度器(Fair Scheduler)切换容量调度器(Capacity Scheduler)
一、调度器简介
Fair Scheduler称为公平调度器,是Apache YARN内置的调度器。公平调度器主要目标是实现YARN上运行的应用能公平的分配到资源,其中各个队列使用的资源根据设置的权重(weight)来实现资源的公平分配。
Capacity Scheduler称为容量调度器,是Apache YARN内置的调度器,建议YARN使用Capacity Scheduler作为默认调度器。Capacity Scheduler是一种多租户、分层级的资源调度器,调度器中的子队列是通过设置Capacity来划分各个子队列的使用情况。
两种调度器区别:
分配方式:
(1)公平调度是以pool为单位分配任务slots的
(2)容量调度以queue的方式分配tasktracker的
资源利用方式:
(1)公平调度每个pool内部可以是以FIFO方式调度也可以是公平方式调度
(2)容量调度每个queue内部只能是以FIFO方式调度,这是公平调度和容量调度的一个区别
是否支持抢占:
(1)公平调度pool内部是支持抢占的,就是可以为某个pool(通常是生产上的用户)分配最低的任务slot,当这个pool得不到最低的资源的时候他就会kill其他的job的task以使自己获得最低的资源,这并不会引起其他的job的失败,因为job也是master-slaver的结构,也是容错的。
(2)容量调度queue内部可以设置优先级但是并不支持抢占
二、腾讯云公平调度器切换为容量调度器
因yarn上有任务运行,需要先为任务提前指定运行队列。
1、现有任务指定队列
hive:set mapred.job.queue.name=队列名;
spark-submit:--queue 队列名
hadoop -jar 方式:类后面加-Dmapreduce.job.queuename=队列名
三、容量调度器资源配置
五、切容量调度后yarn监控使用量异常
memory used使用内存异常
操作步骤
mkdir ~/hadoopjarbakdir
mv /usr/local/service/hadoop/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.8.5.jar ~/hadoopjarbakdir/hadoop-yarn-server-resourcemanager-2.8.5.jar
cp hadoop-yarn-server-resourcemanager-2.8.5.jar /usr/local/service/hadoop/share/hadoop/yarn/
重启rm服务