從今天開始,我們就進入到Yarn部分的學習!!
一. 什麼是Yarn
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統和調度平臺,可爲上層應用提供統一的資源管理和調度。
它的引入爲集羣在利用率、資源統一管理和數據共享等方面帶來了巨大好處。
我們可以把yarn理解爲相當於一個分佈式的操作系統平臺,而mapreduce等運算程序則相當於運行於操作系統之上的應用程序,Yarn爲這些程序提供運算所需的資源(CPU,內存,磁盤等)。
同時大家需要了解以下幾點:
- yarn並不清楚用戶提交的程序的運行機制
- yarn只提供運算資源的調度(用戶程序向yarn申請資源,yarn就負責分配資源)
- yarn中的主管角色叫ResourceManager
- yarn中具體提供運算資源的角色叫NodeManager
- yarn與運行的用戶程序完全解耦,意味着yarn上可以運行各種類型的分佈式運算程序,比如mapreduce、storm,spark等
- spark、storm等運算框架都可以整合在yarn上運行,只要他們各自的框架中有符合yarn規範的資源請求機制即可
- yarn成爲一個通用的資源調度平臺.企業中以前存在的各種運算集羣都可以整合在一個物理集羣上,提高資源利用率,方便數據共享
二. Yarn的基本結構
YARN是一個資源管理、任務調度的框架,主要包含四大模塊:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)和Container。
其中:
ResourceManager負責所有資源的監控、分配和管理,一個集羣只有一個;
NodeManager負責每一個節點的維護,一個集羣有多個。
ApplicationMaster負責每一個具體應用程序的調度和協調,一個集羣有多個;
對於所有的applications,RM擁有絕對的控制權和對資源的分配權。而每個AM則會和RM協商資源,同時和NodeManager通信來執行和監控task。
三. Yarn的四大組件
上圖詳細介紹了Yarn各主要組件的作用
好了,本次的內容分享就到這裏,下一篇博客將爲大家介紹Yarn的運行流程,敬請期待!!!