Hadoop資源感知排程器

2021-09-01 23:11:51 字數 1951 閱讀 8844

1. 什麼是hadoop資源感知排程器?

hadoop資源感知排程器是指排程器根據各個tasktracker當前資源負載情況(cpu,記憶體,網路io等)動態決定將新任務排程給哪個節點處理。

2. hadoop資源感知排程器的必要性和重要性

當前絕大多數hadoop排程器是按照slot多少進行排程。在hadoop中,存在兩種slot:map slot和reduce slot,每個節點可以根據自己實際的cpu個數配置slot個數,一次配好後,啟動hadoop便不可修改。 一旦某個節點上出現空閒的slot,排程器便會分配乙個task給該節點。slot類似於令牌,map task需要拿到乙個map slot才可執行,類似,reduce task需要拿到乙個reduce slot才可執行,如果當前所有slot都被task占用了,則剩下的task需要排隊。

了解當前排程器的基本原理後,便會發現當前排程器存在很大缺陷。排程器的基本作用是:為需要計算機資源的任務分配資源,使他們能夠順利完成計算任務。這裡的計算機資源包括cpu,記憶體,網路,磁碟等,而當前所有排程器幾乎只考慮了cpu資源,這就導致tasktracker經常出現oom或者網路阻塞等現象,嚴重時,可能會把機器搞掛!

3. 如何設計資源感知排程器?

hadoop排程器模型實際上是乙個典型的任務指派模型,即:資源量是m,任務數是n,如果將這m個資源分配給這n個任務,使他們盡可能利用所有資源,盡快完成任務。

為了實現該模型,乙個hadoop資源感知排程器需要包括四個模組:

(1) 資訊採集模組

各個tasktracker週期性的採集本節點上的資源資訊,這些資訊主要由兩部分組成:機器總體資源和每個task資源使資訊,這裡的資源資訊包括cpu使用情況,記憶體使用情況,網路和磁碟情況等。為了減少獲取資源的代價,可以從linux 虛擬檔案系統/proc目錄下獲取;

(2) 資訊傳輸模組

tasktracker採集的資源資訊通過heartbeat傳送給jobtracker,預設情況下,heartbeat傳送週期是3s。完了完成該模組,需要稍微修改一下hearbeat包;

(3) 資訊聚集模組

jobtracker收集到資訊後,會進行聚集,如:以job為單位做統計等;

(4) 作業排程模組

排程器從jobtracker上獲取各個節點資源使用情況,並以此制定排程策略。

4. 資源感知排程器難度在哪?

hadoop感知排程器最大難度在於排程,這實際上乙個多目標決策問題,理論上沒有最優解,一般需要設計啟發式演算法。

5. 資源感知排程器方面的資料

(1),

(3)multiple-job optimization in mapreduce for heterogeneous workloads

weisong hu; chao tian; xiaowei liu; hongwei qi; li zha; huaming liao; yuezhuo zhang; jie zhang;

semantics knowledge and grid (skg), 2010 sixth international conference on

6. 說明

hadoop自帶的capacity scheduler能夠排程大記憶體任務,原理是:預設情況下每個slot對應乙個記憶體量,當使用者提交作業時,需配置乙個task需要的記憶體量,然後兩個值相除取丄整便得到了乙個task對應的slot數。如:你提交了乙個作業,告訴排程器乙個task要使用4gb記憶體,而預設情況下乙個slot對應2gb記憶體,則沒執行乙個你的task,會使用2個slot。

,作者介紹:

本部落格的文章集合:

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資源排程器

目前,hadoop作業排程器主要有三種 fifo scheduler capacity scheduler和fair scheduler。hadoop2.7.2預設的資源排程器是capacity scheduler。具體設定詳見 yarn site.xml檔案 the class to use as...