您好,登錄后才能下訂單哦!
這篇文章主要講解了“YARN是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“YARN是什么”吧!
YARN是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。
YARN總體上仍然是master/slave結構,在整個資源管理框架中,resourcemanager為master,nodemanager是slave。Resourcemanager負責對各個nademanger上資源進行統一管理和調度。當用戶提交一個應用程序時,需要提供一個用以跟蹤和管理這個程序的ApplicationMaster,它負責向ResourceManager申請資源,并要求NodeManger啟動可以占用一定資源的任務。由于不同的ApplicationMaster被分布到不同的節點上,因此它們之間不會相互影響。
YARN的基本組成結構,YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等幾個組件構成。
ResourceManager是Master上一個獨立運行的進程,負責集群統一的資源管理、調度、分配等等;NodeManager是Slave上一個獨立運行的進程,負責上報節點的狀態;App Master和Container是運行在Slave上的組件,Container是yarn中分配資源的一個單位,包涵內存、CPU等等資源,yarn以Container為單位分配資源。Client向ResourceManager提交的每一個應用程序都必須有一個Application Master,它經過ResourceManager分配資源后,運行于某一個Slave節點的Container中,具體做事情的Task,同樣也運行與某一個Slave節點的Container中。RM,NM,AM乃至普通的Container之間的通信,都是用RPC機制。
YARN的架構設計使其越來越像是一個云操作系統,數據處理操作系統。
最后提及YARN的資源管理,我們可以從以下幾個方面進行理解:
1.資源調度和隔離是yarn作為一個資源管理系統,最重要且最基礎的兩個功能。資源調度由resourcemanager完成,而資源隔離由各個nodemanager實現。
2.Resourcemanager將某個nodemanager上資源分配給任務(這就是所謂的“資源調度”)后,nodemanager需按照要求為任務提供相應的資源,甚至保證這些資源應具有獨占性,為任務運行提供基礎和保證,這就是所謂的資源隔離。
3.當談及到資源時,我們通常指內存、cpu、io三種資源。Hadoop yarn目前為止僅支持cpu和內存兩種資源管理和調度。
4.內存資源多少決定任務的生死,如果內存不夠,任務可能運行失敗;相比之下,cpu資源則不同,它只會決定任務的快慢,不會對任務的生死產生影響。
感謝各位的閱讀,以上就是“YARN是什么”的內容了,經過本文的學習后,相信大家對YARN是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。