产生原因
对于节点数超出4000的大型集群,第一代的MapReduce系统开始面临扩展性的瓶颈。2010年雅虎团队开始设计下一代的MapReduce,由此YARN(Yet Another Resource Negotiator)应运而生。
框架
两个独立的守护进程:
资源管理器ResourceManager:管理集群上资源使用
应用管理器ApplicationMaster:管理集群上运行任务生命周期
思路
应用服务器与资源管理器协商集群计算资源(容器)。在这些容器上运行特定应用程序的进程。容器由集群节点上运行的节点管理器监视,以确保应用程序使用的资源不会超过分配给它的资源。
1) 客户端提交Job给ResourceManager
2) ResourceManager分配Container容器资源给ApplicationMaster,应用的每个实例有一个专用的ApplicationMaster
3) ApplicationMaster汇报自己的状态???
4) AM将RM传来的对Container资源分配的信息转达给NodeManager,让NodeManager启动Container运行APP
5) NodeManager定时“心跳”汇报自己的状态及Container的运行状态
运行机制
实体
1)Job:提交MR作业的客户端;
2)ResourceManager:Yarn资源管理器,负责协调集群上计算资源的分配;
3)MRAppMaster:负责协调运行MR作业的任务;
4)NodeManager:Yarn节点管理器,负责启动和监视集群中机器上的计算容器;
5)HDFS:分布式文件系统,用来与其他实体间共享作业文件。