Yarn知識點整理

2021-10-04 06:46:02 字數 1566 閱讀 3678

yarn是乙個資源排程平台,負責為計算框架提供伺服器運算資源,相當於乙個分布式作業系統平台,而mapreduce相當於應用程式。yarn在hadoop2之後引入mapreduce.

mr程式提交到mapreduce客戶端所在節點

resourcemanager將mr程式的資源路徑返回給yarnrunnermapreduce客戶端將執行mr程式所需資源提交到hdfs

resourcemanager將客戶端的請求放入排程佇列,根據規定的排程演算法排程任務

當該作業被排程器排程執行,某個nodemanager領取到該作業

該container從hdfs上拷貝執行task所需要的job資訊

resourcemanager將maptask分配給另外的若干個nodemanager,這些nodemanager領取任務並建立container

resourcemanager將reducetask分配給另外的若干個nodemanager,這些nodemanager領取任務並建立container,並從所有maptask獲得自己的資料分割槽

hadoop支援3種資源排程器:fifo, capacity scheduler(容量排程器), fair scheduler(公平排程器). hadoop 2.7.2預設的資源排程器是capacity scheduler(見配置檔案yarn-default.xml

所有提交的作業按提交時間順序排成乙個先進先出的佇列,每次給隊首的作業分配所有集群資源,待該任務執行完成後出隊,執行下乙個隊首任務。該排程器的缺點是大作業會阻塞小作業。

預設的排程器。多個fifo佇列,每個佇列分得不同份額的集群資源(例如3個佇列,每個佇列的資源份額分別為20%, 30%, 50%)。這樣可以控制作業的最大資源占用,乙個任務不至於占用所有的集群資源;可以配置小份額佇列,供小任務使用;不同佇列的任務可以在集群中併發執行。

支援多佇列多使用者,每個佇列中的資源份額可以配置,同乙個佇列中根據作業動態調整資源,支援搶占功能。在同乙個佇列中,按照作業優先順序分配資源,優先順序越高的作業分配資源越多,但是每個作業都會分配到資源以確保公平,因此同乙個列隊中可能有多個作業同時執行。併發度高,對集群效能要求較高。若集群效能較低,可能出現所有作業都在緩慢執行但都沒有執行完的情況,此時應換用容量排程器。

因硬體老化、軟體bug等原因,乙個作業的個別map或reduce任務可能執行得非常慢,拖慢整個作業的執行速度

發現拖後腿的任務,比如某個任務執行速度遠遠低於平均執行速度,則為該任務啟動乙個備份任務。原任務和備份任務誰先執行完,則採用誰的結果。

每個task只能有乙個備份任務

當前作用的已完成的任務必須不小於5%

開啟推測執行引數mapreduce.map.speculative,該引數在mapred-site.xml檔案中是預設開啟的

任務間存在嚴重的負載傾斜

多次執行的結果和單次執行的結果不一樣的任務,比如任務向資料庫中寫資料

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...