我无法确定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:
Anatomy of a YARN Application Run(摘自Tom White的“Hadoop:权威指南”):