赞
踩
目录
前面已经介绍YARN的3种调度器,接下来以Hadoop自带的WordCount为例,操作演示公平调度器的配置与使用。
公平调度器的使用由属性yarn.resourcemanager.scheduler.class的设置决定。YARN默认使用的是容量调度器,如果要使用公平调度器,需要将yarn-site.xml文件中的yarn.resourcemanager.scheduler.class设置为公平调度器的完全限定名,其核心配置如下:
- <property>
- <!--调度器类型指定为Fair Scheduler-->
- <name>yarn.resourcemanager.scheduler.class</name>
- <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
- </property>
- <property>
- <!--指定Fair Scheduler具体配置文件位置-->
- <name>yarn.scheduler.fair.allocation.file</name>
- <value>/soft/hadoop/etc/hadoop/conf/fair-scheduler.xml</value>
- </property>
通过一个名为fair-Scheduler.xml的配置文件对公平调度器进行配置,该文件位于yarn.scheduler.fair.allocation.file属性配置的路径下,核心配置如下:
- <?xml version="1.0"?>
- <allocations>
- <!-- 定义队列 -->
- <queue name="root">
- <!--设置调度策略-->
- <schedulingPolicy>fair</schedulingPolicy>
- <!--允许提交任务的用户名和组-->
- <aclSubmitApps>*</aclSubmitApps>
- <!--允许管理任务的用户名和组-->
- <aclAdministerApps>*</aclAdministerApps>
- <!--默认队列-->
- <queue name="default">
- <minResources>1024mb,1vcores</minResources>
- <maxResources>2048mb,1vcores</maxResources>
- </queue>
- <!--离线队列-->
- <queue name="offline">
- <!--最小资源-->
- <minResources>1024mb,1vcores</minResources>
- <!--最大资源-->
- <maxResources>2048mb,2vcores</maxResources>
- <!--最大同时运行Application数量-->
- <maxRunningApps>50</maxRunningApps>
- </queue>
- <!--实时队列-->
- <queue name="realtime">
- <!--最小资源-->
- <minResources>1024mb,1vcores</minResources>
- <!--最大资源-->
- <maxResources>2048mb,2vcores</maxResources>
- <!--最大同时运行Application数量-->
- <maxRunningApps>50</maxRunningApps>
- </queue>
- </queue>
- </allocations>
队列的层次使用嵌套queue元素来定义,default、offline、realline等队列都是root队列的孩子。每个队列可以有不同的调度策略,可以通过SchedulerPolicy属性来分别设置,在每个队列中,公平调度器可以选择按照FIFO、Fair或DRF策略为应用程序分配资源,每个队列还可以配置最大和最小资源数量,以及最大可以运行的应用数量。
因为当前Hadoop环境是伪分布式集群,所以只需要修改当前节点的yarn-site.xml和fair-Scheduler.xml配置文件即可。如果Hadoop是分布式集群环境,还需要将相关配置文件通过scp命令同步到集群其他节点。
因为公平调度器需要修改YARN相关的配置文件,所以需要重启YARN集群才能使配置文件生效。YARN集群的启停操作命令如下:
- stop-yarn.sh #关闭yarn集群
- start-yarn.sh #启动yarn集群
以Hadoop自带的WordCount为例,使用公平调度器将MapReduce应用提交到root offline队列中运行,具体操作命令如下:
yarn jar /soft/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-exam-3.2.1.jar wordcount -Dmapreduce.job.queuename=root.offline /test/words.log /test/out
在浏览器中输入http://hadoop:8088/地址,通过YARN集群的Web界面查看MapReduce作业所使用的调度器及队列。
使用HDFS shell命令查看WordCount作业输出结果,如果WordCount作业能成功运行并输出正确结果,说明YARN集群中的公平调度器配置成功了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。