- 大數據:從基礎理論到最佳實踐
- 祁偉
- 527字
- 2021-01-07 18:48:02
4.1 YARN概述
Apache Hadoop YARN(Yet Another Resource Negotiator,另一種資源協調者)是從Hadoop 0.23進化來的一種新的資源管理和應用調度框架。基于YARN,可以運行多種類型的應用程序,例如MapReduce、Spark、Storm等。YARN不再具體管理應用,資源管理和應用管理是兩個低耦合的模塊。
YARN從某種意義上來說,是一個云操作系統(Cloud OS)。基于該操作系統之上,程序員可以開發多種應用程序,例如批處理MapReduce程序、Spark程序以及流式作業Storm程序等。這些應用可以同時利用Hadoop集群的數據資源和計算資源。此外,還可以利用YARN的資源管理器,提供新的應用管理器實現。
YARN的產生是對Hadoop1的優化,這次優化是Hadoop框架發展以來最大的一次重構,Hadoop2將Jobtracter的資源管理和任務管理拆分成兩個獨立模塊,成為獨立的YARN和各種ApplicationManager。
概括地說,YARN彌補了Hadoop1中的兩個主要缺陷,這是產生YARN的原動力。
(1)不支持多租賃。集群的計算資源只支持MR程序,不能支持Storm、Spark等作業。
(2)規模限制,集群規模超過4000臺時,會出現不可預測性,計算能力非近線性擴展。
YARN的分布式系統,包含兩個守護進程:資源管理器(ResourceManager, RM)、節點管理器(NodeManager, NM)。另外,很重要的進程是應用管理者(ApplicationManager, AM),當一個應用提交后,RM負責啟動該任務對應類型的AM,應用的執行由AM管理。可以簡單地認為,AM進程的生命周期為應用的運行時間。YARN的工作原理如圖4-1所示。

圖4-1 YARN的工作原理