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.要考慮優先順序。