hadoop Capacity Scheduler計算能力排程器配置

破棉襖發表於2014-08-08

計算能力排程器介紹

Capacity Scheduler支援以下特性:

(1) 計算能力保證。支援多個佇列,某個作業可被提交到某一個佇列中。每個佇列會配置一定比例的計算資源,且所有提交到佇列中的作業共享該佇列中的資源。

(2) 靈活性。空閒資源會被分配給那些未達到資源使用上限的佇列,當某個未達到資源的佇列需要資源時,一旦出現空閒資源資源,便會分配給他們。

(3) 支援優先順序。佇列支援作業優先順序排程(預設是FIFO)

(4) 多重租賃。綜合考慮多種約束防止單個作業、使用者或者佇列獨佔佇列或者叢集中的資源。

(5) 基於資源的排程。 支援資源密集型作業,允許作業使用的資源量高於預設值,進而可容納不同資源需求的作業。不過,當前僅支援記憶體資源的排程。

配置方法為

1. 複製$HADOOP_HOME/contrib/capacity-scheduler/hadoop-capacity-scheduler.jar  到$HADOOP_HOME/lib目錄中

2. 修改namenode節點中的conf/mapred-site.xml檔案

  1. <property>  
  2.   <name>mapred.jobtracker.taskSchedulername>  
  3.   <value>org.apache.hadoop.mapred.CapacityTaskSchedulervalue>  
  4. property>  
  5. <property>  
  6.   <name>mapred.queue.namesname>  
  7.   <value>default,hadoop,hivevalue>  
  8. property>  
3. 修改conf/capacity-scheduler.xml 配置檔案


  1. xml version="1.0"?>  
  2.   
  3. <!-- This is the configuration file for the resource manager in Hadoop. --&gt  
  4. <!-- You can configure various scheduling parameters related to queues. --&gt  
  5. <!-- The properties for a queue follow a naming convention,such as, --&gt  
  6. <!-- mapred.capacity-scheduler.queue..property-name. --&gt  
  7.   
  8. <configuration>  
  9.   <!-- Capacity scheduler Job Initialization configuration parameters --&gt  
  10.   <property>  
  11.     <name>mapred.capacity-scheduler.init-poll-intervalname>  
  12.     <value>5000value>  
  13.     <description>The amount of time in miliseconds which is used to poll the job queues for jobs to initialize.  
  14.     description>  
  15.   property>  
  16.   <property>  
  17.     <name>mapred.capacity-scheduler.init-worker-threadsname>  
  18.     <value>5value>  
  19.     <description>Number of worker threads which would be used by  
  20.     Initialization poller to initialize jobs in a set of queue.  
  21.     If number mentioned in property is equal to number of job queues  
  22.     then a single thread would initialize jobs in a queue. If lesser  
  23.     then a thread would get a set of queues assigned. If the number  
  24.     is greater then number of threads would be equal to number of   
  25.     job queues.  
  26.     description>  
  27.   property>  
  28.   
  29.   <property>   
  30.      <name>mapred.capacity-scheduler.maximum-system-jobsname>   
  31.      <value>30value>   
  32.      <description>Maximum number of jobs in the system which can be initialized,   
  33. concurrently, by the Capacity Scheduler.   
  34.      description>   
  35.   property>   
  36.   
  37. <!--hadoop queue--&gt  
  38.   <property>  
  39.     <name>mapred.capacity-scheduler.queue.hadoop.capacityname>  
  40.     <value>30value>  
  41.     <description>Percentage of the number of slots in the cluster that are to be available for jobs in this queue.  
  42.     description>      
  43.   property>  
  44.     
  45.   <property>  
  46.     <name>mapred.capacity-scheduler.queue.hadoop.maximum-capacityname>  
  47.     <value>-1value>  
  48.     <description>  
  49.     description>      
  50.   property>  
  51.     
  52.   <property>  
  53.     <name>mapred.capacity-scheduler.queue.hadoop.supports-priorityname>  
  54.     <value>truevalue>  
  55.     <description>description>  
  56.   property>  
  57.     
  58.     <property>  
  59.     <name>mapred.capacity-scheduler.queue.hadoop.minimum-user-limit-percentname>  
  60.     <value>100value>  
  61.     <description> description>  
  62.   property>  
  63.   
  64.   <property>  
  65.     <name>mapred.capacity-scheduler.queue.hadoop.user-limit-factorname>  
  66.     <value>3value>  
  67.     <description>description>  
  68.   property>  
  69.   
  70.   <property>  
  71.     <name>mapred.capacity-scheduler.queue.hadoop.maximum-initialized-active-tasksname>  
  72.     <value>200000value>  
  73.     <description>description>  
  74.   property>  
  75.   
  76.   <property>  
  77.     <name>mapred.capacity-scheduler.queue.hadoop.maximum-initialized-active-tasks-per-username>  
  78.     <value>100000value>  
  79.     <description>description>  
  80.   property>  
  81.     
  82.   <property>  
  83.     <name>mapred.capacity-scheduler.queue.hadoop.init-accept-jobs-factorname>  
  84.     <value>10value>  
  85.     <description>description>  
  86.   property>  
  87.   
  88.   <property>  
  89.     <name>mapred.capacity-scheduler.default-maximum-initialized-jobs-per-username>  
  90.     <value>5value>  
  91.     <description>The maximum number of jobs to be pre-initialized for a user  
  92.     of the job queue.  
  93.     description>  
  94.   property>  
  95.     
  96. <!-- hive --&gt  
  97. <property>  
  98.     <name>mapred.capacity-scheduler.queue.hive.capacityname>  
  99.     <value>30value>  
  100.     <description>description>      
  101.   property>  
  102.     
  103.   <property>  
  104.     <name>mapred.capacity-scheduler.queue.hive.maximum-capacityname>  
  105.     <value>-1value>  
  106.     <description>description>      
  107.   property>  
  108.     
  109.   <property>  
  110.     <name>mapred.capacity-scheduler.queue.hive.supports-priorityname>  
  111.     <value>truevalue>  
  112.     <description>If true, priorities of jobs will be taken into account in scheduling decisions.  
  113.     description>  
  114.   property>  
  115.     
  116.     <property>  
  117.     <name>mapred.capacity-scheduler.queue.hive.minimum-user-limit-percentname>  
  118.     <value>100value>  
  119.     <description>description>  
  120.   property>  
  121.   
  122.   <property>  
  123.     <name>mapred.capacity-scheduler.queue.hive.user-limit-factorname>  
  124.     <value>4value>  
  125.     <description>The multiple of the queue capacity which can be configured to allow a single user to acquire more slots.  
  126.     description>  
  127.   property>  
  128.   
  129.   <property>  
  130.     <name>mapred.capacity-scheduler.queue.hive.maximum-initialized-active-tasksname>  
  131.     <value>200000value>  
  132.     <description>description>  
  133.   property>  
  134.   
  135.   <property>  
  136.     <name>mapred.capacity-scheduler.queue.hive.maximum-initialized-active-tasks-per-username>  
  137.     <value>100000value>  
  138.     <description>description>  
  139.   property>  
  140.     
  141.   <property>  
  142.     <name>mapred.capacity-scheduler.queue.hive.init-accept-jobs-factorname>  
  143.     <value>10value>  
  144.     <description>description>  
  145.   property>  
  146.   
  147. <!-- default --&gt   
  148.   <property>  
  149.     <name>mapred.capacity-scheduler.queue.default.capacityname>  
  150.     <value>40value>  
  151.     <description>description>      
  152.   property>  
  153.     
  154.   <property>  
  155.     <name>mapred.capacity-scheduler.queue.default.maximum-capacityname>  
  156.     <value>-1value>  
  157.     <description>description>      
  158.   property>  
  159.     
  160.   <property>  
  161.     <name>mapred.capacity-scheduler.queue.default.supports-priorityname>  
  162.     <value>truevalue>  
  163.     <description>description>  
  164.   property>  
  165.   
  166.   <property>  
  167.     <name>mapred.capacity-scheduler.queue.default.minimum-user-limit-percentname>  
  168.     <value>100value>  
  169.     <description>description>  
  170.   property>  
  171.     
  172.   <property>  
  173.     <name>mapred.capacity-scheduler.queue.default.user-limit-factorname>  
  174.     <value>4value>  
  175.     <description>description>  
  176.   property>  
  177.   
  178.   <property>  
  179.     <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasksname>  
  180.     <value>200000value>  
  181.     <description>description>  
  182.   property>  
  183.   
  184.   <property>  
  185.     <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasks-per-username>  
  186.     <value>100000value>  
  187.     <description>description>  
  188.   property>  
  189.   
  190.   <property>  
  191.     <name>mapred.capacity-scheduler.queue.default.init-accept-jobs-factorname>  
  192.     <value>10value>  
  193.     <description>description>  
  194.   property>  
  195.   
  196. configuration>  

儲存檔案後,重啟jobtracker  


以後修改capacity-scheduler.xml檔案後只需要執行命令hadoop mradmin -refreshQueues 就可以重新載入配置項。

4. 最後,如何使用該佇列呢:
mapreduce:在Job的程式碼中,設定Job屬於的佇列,例如hive:
conf.setQueueName("hive");
hive:在執行hive任務時,設定hive屬於的佇列,例如hive:
set mapred.job.queue.name=hive;

設定佇列的任務名稱set mapred.job.name=hadooptest;

設定佇列的優先順序別set mapred.job.priority=HIGH;

原文地址:http://blog.csdn.net/jiedushi/article/details/7920455

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-1247951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章