1. 程式人生 > >Hadoop叢集作業排程演算法

Hadoop叢集作業排程演算法

1.簡介

分散式檔案系統在排程作業的時候可以通過引數來設定job作業排程。開門見山,常見的有三種,

先進先出FifoScheduler,預設的排程演算法,先進先出的方式處理應用,只有一個佇列可提交應用,沒有應用優先順序可以配置;

公平排程器FairScheduler,多佇列的,多使用者共享資源.程式在執行的時候可以在客戶端設定優先順序,也可以設定搶佔;

容量排程器CapacityScheduler.多佇列的,依靠作業,如果需求資源少了,優先順序就會高一些,需求資源多了,優先順序就會低一些。

其中,預設的是先進先出排程,不需要我們進行設定,其他兩種公平和容量排程需要在conf中進行設定。

2.配置

配置CapacityScheduler:
修改配置檔案mapred-site.xml,容量排程器是多佇列的,需要指定的,有一個預設的,default。更多配置在:conf/capacity-scheduler.xml
      <property>
        <name>mapred.jobtracker.tasktracker</name>
        <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value>
      </property>
      <property>
        <name>mapred.queue.names</name>
        <value>default</value>
      </property>

配置FairScheduler:
      修改配置檔案mapred-site.xml,然後重啟叢集即可,更多配置在:conf/fair-scheduler.xml
      <property>
        <name>mapred.jobtracker.tasktracker</name>
        <value>org.apache.hadoop.mapred.FairSchedler</value>
      </property>

注意:排程演算法順序需要關注1.提高作業的吞吐量;2.要考慮優先順序。