Hadoop 資源管理器 - Apache YARN

jopen 12年前發布 | 22K 次閱讀 Hadoop 分布式/云計算/大數據

Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,前不久被提升為高層次的Hadoop子項目。

MapReduce NextGen Architecture

YARN最初是為了修復MapReduce實現里的明顯不足,并對可伸縮性(支持一萬個節點和二十萬個內核的集群)、可靠性和集群利用率進行了提升。

YARN實現這些需求的方式是,把Job Tracker的兩個主要功能(資源管理和作業調度/監控)分成了兩個獨立的服務程序——全局的資源管理(RM)和針對每個應用的應用 Master(AM),這樣,一個應用要么是傳統意義上的MapReduce任務,要么是任務的有向無環圖(DAG)。

和Hadoop里的其他內容一樣,YARN的資源管理和執行框架都是按主/從范例實現的——節點管理器(NM)運行、監控每個節點,并向資源管理器報告資源的可用性狀態,和HDFS的架構相比,最終為系統里所有應用分配資源的是資源管理器。

特定應用的執行由應用Master控制,AM負責將一個應用分割成多個任務,并和資源管理器協調執行所需的資源。資源一旦分配好,應用Master就和節點管理器一起安排、執行、監控獨立的應用任務。

YARN驅動使用“應用提交客戶端(Application Submission Clien)”將一個“應用”提交給YARN資源管理器。借助“ClientRMProtocol”,客戶端先獲取一個新的“應用ID”,然后提交運行 “應用”。應用提交的信息里,包含應用Master要啟動的Unix進程信息。提交信息還描述了應用運行要使用的本地文件/jar,執行需要的實際命令, 以及各種Unix環境設置等。可以在這里查看編寫YARN驅動的詳情。

需要注意的是,YARN并不會改變MapReduce編程模型,它只是應用開發人員使用的API。YARN提供了一種新的資源管理模型和實現,用來 執行MapReduce任務。因此,在最簡單的情況下,現有的MapReduce應用仍然能照原樣運行(需要重新編譯),YARN只不過能讓開發人員更精 確地指定執行參數。

另外,YARN可用來創建新的框架和除MapReduce之外的執行模型,可以同時利用Hadoop集群的計算能力和豐富的數據存儲模型,來解決具 體的新問題。這些新的框架還可以利用YARN的資源管理,提供新的應用管理器實現。此外,這種架構還允許多個應用管理器同時存在,共享同一個Hadoop 集群和駐留在集群上的數據。

來自: InfoQ

項目主頁:http://www.baiduhome.net/lib/view/home/1355967591281

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!