【總結】Fair Scheduler


Fair Scheduler總結apache

默認公平調度調度策略僅僅基於內存資源,經過使用DRF(Dominant Resource Fairness)可以配置基於內存和CPU資源任務調度。ide

當只有一個應用運行的時候,該應用可以使用整個集羣。當其餘應用提交到集羣,空閒出來的資源將分配給新提交的應用,這樣每一個應用可以獲得大體相同的資源。Hadoop默認調度器,造成一個應用的隊列,如此小應用能夠在一個合理時間範圍內完成,而且不會讓大應用長時間等待資源。這也是一個合理方式在許多用戶中分享集羣資源。最後,公平調度能夠設置應用的優先度,設置優先度權重決定應用佔用資源比例。oop

可插入策略的分層隊列spa

公平調度支持分層隊列,全部的隊列從root隊列延伸。典型的公平調度方式是把可用資源分佈在可用的root隊列的子隊列當中。應用程序只能在葉子隊列中被調度。一個隊列能夠被指定爲其餘隊列的子隊列。指定一個有層級的隊列須要同時指定上級隊列。例如 root.queue1   root.queue1.queue2。server

公平調度能夠配置自定義的調度策略,好比FifiPolicy,FairSharePolicy,DominantResourceFairnessPolicyxml

使用公平調度須要在yarn-site.xml中配置以下內容隊列

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


配置公平調度主要包含兩個文件,首先是yarn-site.xml,在Hadoop配置目錄下,其次須要建立一個配置文件fair-scheduler.xml,主要配置隊列的權重和資源容量等。內存

<?xml version="1.0"?>
<allocations>
  <queue name="sample_queue">
    <minResources>10000 mb,0vcores</minResources>
    <maxResources>90000 mb,0vcores</maxResources>
    <maxRunningApps>50</maxRunningApps>
    <maxAMShare>0.1</maxAMShare>
    <weight>2.0</weight>
    <schedulingPolicy>fair</schedulingPolicy>
    <queue name="sample_sub_queue">
      <aclSubmitApps>charlie</aclSubmitApps>
      <minResources>5000 mb,0vcores</minResources>
    </queue>
  </queue>

  <queueMaxAMShareDefault>0.5</queueMaxAMShareDefault>
  <queueMaxResourcesDefault>40000 mb,0vcores</queueMaxResourcesDefault>

  <!-- Queue 'secondary_group_queue' is a parent queue and may have
       user queues under it -->
  <queue name="secondary_group_queue" type="parent">
  <weight>3.0</weight>
  </queue>

  <user name="sample_user">
    <maxRunningApps>30</maxRunningApps>
  </user>
  <userMaxAppsDefault>5</userMaxAppsDefault>

  <queuePlacementPolicy>
    <rule name="specified" />
    <rule name="primaryGroup" create="false" />
    <rule name="nestedUserQueue">
        <rule name="secondaryGroupExistingQueue" create="false" />
    </rule>
    <rule name="default" queue="sample_queue"/>
  </queuePlacementPolicy>
</allocations>


隊列訪問控制列表hadoop

ACLs對隊列進行控制,管理哪些用戶能夠訪問特定隊列。主要包括了aclSubmitApps 和aclAdministerApps配置項,每一個隊列均可以配置這兩個 參數。ci

相關文章
相關標籤/搜索