2016-09-17 48 views
2

我無法識別某些組件的Hadoop的2.0架構的差異:的Hadoop 2.0應用大師VS節點管理器

關於ApplicationMaster和節點管理器:

我知道ApplicationMaster負責運行Map和Reduce任務,並通過與ResourceManager協調來檢索容器以運行這些任務。

但我對NodeManager的目的感到困惑。 NodeManager爲ApplicationMaster創建容器(運行這些Map和Reduce任務)還是ResourceManager爲ApplicationMaster創建容器(運行這些Map和Reduce Tasks),並且NodeManager只管理節點的健康狀況,安全地放置容器爲應用程序主文件所需的文件和目錄,並監視容器的資源使用情況等。

回答

1

ResourceManager(每個羣集一個) - 仲裁所有應用程序之間的資源。

NodeManager - 負責容器啓動,監控其資源使用情況(cpu,內存,磁盤,網絡)並將其報告給ResourceManager/Scheduler。

因此,在回答你的問題時,ResourceManager不會自己啓動容器,它會找到合適的NodeManager來做到這一點。

一些圖片和鏈接更多的細節波紋管。

YARN Architecture來自官方的Hadoop文檔:

enter image description here

Anatomy of a YARN Application Run(從 「Hadoop的:權威指南」 由湯姆·白):

enter image description here

+0

但資源管理器將首先推出容器在客戶端提交YARN應用程序時運行應用程序主控。正確?然後,應用程序主控與資源管理器進行交互,讓容器運行Map和Reduce任務,這些容器由NodeManager創建。正確? – CapturedTree

+1

據我所知,ResourceManager本身並不啓動任何容器,它只是服務資源請求,將這些請求「重定向」到需要資源的NodeManagers。 – MaxNevermind

+1

因此,NodeManager啓動應用程序主容器以及通常的映射/減少作業容器。 – MaxNevermind