天天看點

Hadoop學習筆記(三):作業排程器

作業排程器        早期的作業排程使用FIFO(First In First Out)排程算法,可以設定屬性mapred.job.priority或者JobClient的setJobPriority( )方法來設定作業優先級,可配置的優先級有5個:VERY_HIGH, HIGH, NORMAL, LOW, VERY_LOW。       除了FIFO排程器之外,還有兩個多使用者排程器,分别是Fair Scheduler和Capacity Scheduler。

1. Fair Scheduler(讓每個使用者公平地共享叢集資源)

  • 公平排程器以資源池來組織作業,預設情況下,每個使用者都有一個資源池,每個資源池的資源相等。在同一個資源池内,所有的作業共享該資源池的資源。
  • 當資源池所需的資源小于它所擁有的資源時,額外的資源會在其他資源池之間進行切分。
  • 公平排程器保證最小共享資源,當一個資源池有作業在運作時,它至少能擷取最小共享資源。
  • 資源池可以被設定權重。
  • 公平排程器支援搶占,可以中止得到過多資源的任務,以便把資源分給在特定的一段時間内未得到公平資源共享的資源池。

2. Capacity Scheduler(資源按比例配置設定給各個隊列)

  • 叢集由很多隊列組成,叢集資源按比例配置設定給各個隊列。
  • 空閑的資源會配置設定給未達到資源使用上限的隊列。
  • 支援優先級,預設使用FIFO排程算法。
  • 添加各種嚴格限制,防止個别使用者或隊列獨占資源。

繼續閱讀