Hadoop中的公平调度器案例、Yarn 案例实操(三)

文章目录

  • 17. Yarn 案例实操
    • 17.3 公平调度器案例
      • 17.3.1 需求
      • 17.3.2 配置多队列的公平调度器
        • 17.3.2.1 修改yarn-site.xml文件,加入以下参数
        • 17.3.2.2 配置fair-scheduler.xml
        • 17.3.2.3 分发配置并重启Yarn
      • 17.3.3 测试提交任务
        • 17.3.3.1 提交任务时指定队列,按照配置规则,任务会到指定的root.test队列
        • 17.3.3.2 提交任务时不指定队列,按照配置规则,任务会到root.summer.summer队列

17. Yarn 案例实操

17.3 公平调度器案例

17.3.1 需求

创建两个队列,分别是test和summer(以用户所属组命名)。期望实现以下效果:若用户提交任务时指定队列,则任务提交到指定队列运行;若未指定队列,test用户提交的任务到root.group.test队列运行,summer提交的任务到root.group.summer队列运行(注:group为用户所属组)。
公平调度器的配置涉及到两个文件,一个是yarn-site.xml,另一个是公平调度器队列分配文件fair-scheduler.xml(文件名可自定义)。
(1)配置文件参考资料:

https://hadoop.apache.org/docs/r3.1.3/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

(2)任务队列放置规则参考资料:

https://blog.cloudera.com/untangling-apache-hadoop-yarn-part-4-fair-scheduler-queue-basics/

17.3.2 配置多队列的公平调度器

17.3.2.1 修改yarn-site.xml文件,加入以下参数

<property>
    <name>yarn.resourcemanager.scheduler.classname>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulervalue>
    <description>配置使用公平调度器description>
property>

<property>
    <name>yarn.scheduler.fair.allocation.filename>
    <value>/opt/module/hadoop-3.1.3/etc/hadoop/fair-scheduler.xmlvalue>
    <description>指明公平调度器队列分配配置文件description>
property>

<property>
    <name>yarn.scheduler.fair.preemptionname>
    <value>falsevalue>
    <description>禁止队列间资源抢占description>
property>
[summer@hadoop102 hadoop]$ vim yarn-site.xml

在这里插入图片描述

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第1张图片

17.3.2.2 配置fair-scheduler.xml

[summer@hadoop102 hadoop]$ vim fair-scheduler.xml

在这里插入图片描述


<allocations>
  
  <queueMaxAMShareDefault>0.5queueMaxAMShareDefault>
  
  <queueMaxResourcesDefault>2048mb,4vcoresqueueMaxResourcesDefault>

  
  <queue name="test">
    
    <minResources>1024mb,2vcoresminResources>
    
    <maxResources>2048mb,4vcoresmaxResources>
    
    <maxRunningApps>2maxRunningApps>
    
    <maxAMShare>0.5maxAMShare>
    
    <weight>1.0weight>
    
    <schedulingPolicy>fairschedulingPolicy>
  queue>
  
  <queue name="summer" type="parent">
    
    <minResources>1024mb,2vcoresminResources>
    
    <maxResources>2048mb,4vcoresmaxResources>
    
    <maxRunningApps>4maxRunningApps>
    
    <maxAMShare>0.5maxAMShare>
    
    <weight>1.0weight>
    
    <schedulingPolicy>fairschedulingPolicy>
  queue>

  
  <queuePlacementPolicy>
    
    <rule name="specified" create="false"/>
    
    <rule name="nestedUserQueue" create="true">
        <rule name="primaryGroup" create="false"/>
    rule>
    
    <rule name="reject" />
  queuePlacementPolicy>
allocations>

17.3.2.3 分发配置并重启Yarn

[summer@hadoop102 hadoop]$ xsync yarn-site.xml fair-scheduler.xml

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第2张图片

[summer@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[summer@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第3张图片
Hadoop中的公平调度器案例、Yarn 案例实操(三)_第4张图片

17.3.3 测试提交任务

17.3.3.1 提交任务时指定队列,按照配置规则,任务会到指定的root.test队列

[summer@hadoop102 hadoop]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi -D mapreduce.job.queuename=root.test 1 1

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第5张图片

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第6张图片

17.3.3.2 提交任务时不指定队列,按照配置规则,任务会到root.summer.summer队列

Hadoop中的公平调度器案例、Yarn 案例实操(三)_第7张图片Hadoop中的公平调度器案例、Yarn 案例实操(三)_第8张图片

你可能感兴趣的:(#,Hadoop,hadoop,大数据,hdfs)