Yarn是Hadoop 2.x中的一个组件,它是一个资源管理和调度系统,可以实现集群资源的统一管理和调度。 Yarn的基本结构包括: 1. ResourceManager:负责管理和调度集群资源,监控各个节点上的资源情况,并且负责分配资源给各个应用程序。 2. NodeManager:负责向ResourceManager报告本节点的资源使用情况,并且负责启动、监控和管理应用程序的容器,容器是应用程序运行的基本单位。 3. ApplicationMaster:负责应用程序的调度和执行,它是一个特殊的容器,它负责监控应用程序的状态,并且向ResourceManager申请资源。 Yarn的运行原理: 1. 用户将应用程序提交到ResourceManager,ResourceManager将应用程序的信息存储到全局内存中,并且向NodeManager分配应用程序运行的节点。 2. NodeManager在分配的节点上启动一个ApplicationMaster容器,ApplicationMaster容器中有一个Java进程,该进程负责监控应用程序的状态,并且向ResourceManager申请资源。 3. ApplicationMaster负责向NodeManager申请资源,NodeManager根据申请的资源启动应用程序的容器,并且负责监控容器的运行情况。 4. 容器中的应用程序运行完毕后,ApplicationMaster向ResourceManager报告应用程序的运行状态,ResourceManager根据应用程序的运行状态将应用程序从全局内存中移除。