目前,hadoop作業排程器主要有三種:fifo scheduler、capacity scheduler和fair scheduler。hadoop2.7.2預設的資源排程器是capacity scheduler。
具體設定詳見:yarn-site.xml檔案
the class to use as the resource scheduler.
yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.capacityscheduler
1.先進先出排程器(fifo),如圖1所示
hadoop最初設計目的是支援大資料批處理作業,如日誌挖掘、web索引等作業,為此,hadoop僅提供了乙個非常簡單的排程機制:fifo,即先來先服務,在該排程機制下,所有作業被統一提交到乙個佇列中,hadoop按照提交順序依次執行這些作業。
但隨著hadoop的普及,單個hadoop集群的使用者量越來越大,不同使用者提交的應用程式往往具有不同的服務質量要求,典型的應用有以下幾種:
此外,這些應用程式對硬體資源需求量也是不同的,如過濾、統計類作業一般為cpu密集型作業,而資料探勘、機器學習作業一般為i/o密集型作業。因此,簡單的fifo排程策略不僅不能滿足多樣化需求,也不能充分利用硬體資源。
2.容量排程器(capacity scheduler),如圖2所示
capacity scheduler 是yahoo開發的多使用者排程器,它以隊列為單位劃分資源,每個佇列可設定一定比例的資源最低保證和使用上限,同時,每個使用者也可設定一定的資源使用上限以防止資源濫用。而當乙個佇列的資源有剩餘時,可暫時將剩餘資源共享給其他佇列。
總之,capacity scheduler 主要有以下幾個特點:
3.公平排程器(fair scheduler),如圖3所示
fair schedulere是facebook開發的多使用者排程器。
公平排程器的目的是讓所有的作業隨著時間的推移,都能平均地獲取等同的共享資源!當乙個作業在執行時,它會使用整個集群但是如果有其他作業提交上來,系統會將空閒的資源分配給新的作業!每個任務大致上會獲取平等數量的資源!和傳統的排程策略不同的是它會讓小的任務在合理的時間完成,同時不會讓需要長時間執行的耗費大量資源的應用挨餓!
同capacity scheduler類似,它以隊列為單位劃分資源,每個佇列可設定一定比例的資源最低保證和使用上限,同時,每個使用者也可設定一定的資源使用上限以防止資源濫用;當乙個佇列的資源有剩餘時,可暫時將剩餘資源共享給其他佇列。
當然,fair scheduler也存在很多與capacity scheduler不同之處,這主要體現在以下幾個方面:
Hadoop資源排程器
目前,hadoop作業排程器主要有三種 fifo capacity scheduler和fair scheduler。hadoop2.7.2預設的資源排程器是capacity scheduler。具體設定詳見 yarn default.xml檔案 the class to use as the re...
hadoop資源排程器
hadoop支援多使用者環境,在生產環境中,往往乙個大的hadoop集群,供多個應用如hive,mahout等之類的使用。在多使用者環境下,有的使用者提交的工作量很大 很頻繁,而有的很少,還有的優先順序很高,那麼如何保證 按需 來為各個使用者分配資源 記憶體 cpu 頻寬 io 磁碟 呢?這就需要用...
Hadoop資源感知排程器
1.什麼是hadoop資源感知排程器?hadoop資源感知排程器是指排程器根據各個tasktracker當前資源負載情況 cpu,記憶體,網路io等 動態決定將新任務排程給哪個節點處理。2.hadoop資源感知排程器的必要性和重要性 當前絕大多數hadoop排程器是按照slot多少進行排程。在had...