我无法确定Hadoop 2.0架构中ApplicationMaster和NodeManager之间的差异。

我知道ApplicationMaster负责运行 map 并 reduce task ,它通过与ResourceManager协调来检索容器以运行这些任务。

但是我对NodeManager的目的感到困惑。 NodeManager是为ApplicationMaster创建容器(运行那些映射并 reduce task )还是ResourceManager为ApplicationMaster创建容器(运行那些映射并 reduce task ),而NodeManager只是安全地管理节点的运行状况容器为ApplicationMaster所需的文件和目录,并监视容器的资源使用情况等。

最佳答案

ResourceManager(每个集群一个)-在所有应用程序之间仲裁资源。

NodeManager-负责容器启动,监视其资源使用情况(cpu,内存,磁盘,网络),并将其报告给ResourceManager / Scheduler。

因此,为回答您的问题,ResourceManager不会自行启动容器,而是会找到合适的NodeManager来执行此操作。

以下是一些图片和更多详细信息的链接。

官方Hadoop文档中的YARN Architecture:

hadoop - Hadoop 2.0 ApplicationMaster与NodeManager-LMLPHP

Anatomy of a YARN Application Run(摘自Tom White的“Hadoop:权威指南”):

hadoop - Hadoop 2.0 ApplicationMaster与NodeManager-LMLPHP

08-05 07:32