yarn资源调度---capacity Scheduler和 Fair Scheduler

1 调度器(Resource Scheduler)

1 FIFO Scheduler
    按照作业提交顺序放到先进先出的队列中执行
2 Capacity Scheduler(apache版本默认)
	apache版本默认使用的
	将不同作业放到不同队列中,每个队列按照FIFO或DRF进行分配资源
3 Fair Scheduler(cdh版本默认)
	CDH版本默认使用的
	动态划分或指定多个队列,每个队列按照Fair(默认)或FIFO或DRF(主资源公平算法)

进行分配资源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 capacity Scheduler资源调度

apache版本资源调度的方式官网
在这里插入图片描述

2.1 默认什么都不配置的情况下是默认的default的队列。
在这里插入图片描述
2.2 下面配置几个队列角色,具体配置如下

首先需要在yarn-site.xml文件中配置我们的调度方式。

<property>
   <name>yarn.resourcemanager.scheduler.class</name>
   <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

然后再capacity-scheduler.xml配置文件中加入下面的调度的队列和分配情况。具体配置如下:

<property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>prod,dev</value>
  </property>

 <property>
    <name>yarn.scheduler.capacity.root.prod.queues</name>
    <value>bi,bling</value>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.prod.capacity</name>
    <value>70</value>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.dev.capacity</name>
    <value>30</value>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.prod.maximum-capacity</name>
    <value>90</value>
  </property>

   <property>
    <name>yarn.scheduler.capacity.root.prod.bi.capacity</name>
    <value>50</value>
  </property>
  
 <property>
    <name>yarn.scheduler.capacity.root.prod.bling.capacity</name>
    <value>50</value>
  </property>

2.3 重新启动yarn集群

[root@wyl02 sbin]# ./stop-yarn.sh 
[root@wyl02 sbin]# ./start-yarn.sh 

2.4重启后,我们执行一个wordcount的mapreducede任务

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount -Dmapreduce.job.queuename=bi file:/opt/hadoop/LICENSE.txt file:/outputbi

-Dmapreduce 参数是选择其中一个角色
在这里插入图片描述
从上图我们可以看到,这里选用的生产环境的bi队列角色去跑的任务

3 Fair Scheduler资源调度

cdh版本资源调度方式官网
在这里插入图片描述apache版本的默认的调度方式是容器的调度方式,这里我们再在yarn-site.xml中配置如下配置内容

<property>
   <name>yarn.resourcemanager.scheduler.class</name>
   <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>

配置好后,我们就可以直接启动yarn集群,启动指令上述2.3步骤。启动后,我们看到下面的资源调度的方式就变成公平调度方式了。
在这里插入图片描述
这里如果直接运行作业的话,就创建一个以当前登录用户名为队列名的队列运行如下图所示第二个root是指用的是root用户提交的作业;如果运行作业时指定了队列名,就在指定的队列中运行。
在这里插入图片描述
配置fair-scheduler.xml文件
在这里插入图片描述
配置fair-scheduler.xml文件,内容如下:

<allocations>
	<defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>

	<queue name="dev">
		<weight>40</weight>
		 <schedulingPolicy>fifo</schedulingPolicy>
        </queue>

	<queue name="prod">
		<weight>60</weight>
                <queue name="bi"/>
                <queue name="bling"/>
	</queue>

	<queuePlacementPolicy>
	<rule name="specified" create="false"/>
	<rule name="primaryGroup" create="false"/>
	<rule name="default" queue="bi.bling"/>
	</queuePlacementPolicy>
</allocations>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值