术语Application Master和Application Manager通常可互换使用。实际上,Application Master是请求,启动和监视应用程序特定资源的主要容器,而Application Manager是ResourceManager中的一个组件。有关应用程序管理器的更多详细信息如下所示。
ApplicationsManager负责维护已提交的集合
应用。提交申请后,首先验证申请表
规范并拒绝任何请求其不可满足资源的应用程序
ApplicationMaster(即群集中没有足够资源的节点
运行ApplicationMaster本身)。然后确保没有其他应用程序
使用相同的应用程序ID提交 - 可能由错误引起的情况
或恶意客户端。最后,它将允许的应用程序转发给调度程序。
该组件还负责记录和管理已完成的应用程序
在他们从ResourceManager完全撤离之前的一段时间
记忆。当应用程序完成时,它会在守护进程中放置一个ApplicationSummary
日志文件。
最后,ApplicationsManager会长时间保留已完成应用程序的缓存
应用程序完成以支持用户对应用程序数据的请求(通过Web UI或命令
线)。配置属性yarn.resourcemanager.max-completed-applications
控制ResourceManager的此类已完成应用程序的最大数量
在任何时候记得。缓存是先进先出列表,包含最早的应用程序
被搬出去容纳刚刚完成的申请。
Reference: Hadoop YARN Book
这里的应用程序是指分配给框架的单个作业。
当客户端将应用程序提交给资源管理器时,应用程序管理器负责接受或拒绝该应用程序。
当资源管理器将单个应用程序分配给节点管理器时,应用程序主机负责执行该应用程序。
这有意义吗?
要理解这个概念,我们需要了解在 Hadoop 中通过 YARN 提交的 Job/Application 的完整流程。
在我们跳转到执行流程之前,我们需要了解一些关键概念:
关键概念:
- Yarn 由资源管理器和节点管理器组成
- 只有一个资源管理器运行在主节点上
- 将在每个数据节点上运行多个节点管理器
- 资源管理器负责执行任何作业/应用程序的资源管理
- 节点管理器负责处理提交给它们的各个任务/流程
- 请注意,YARN 是一个通用框架,它不仅用于执行 Map Reduce 作业。它可用于执行任何应用程序,例如 Java 应用程序的 main()。
现在,让我们讨论通过 YARN 的作业/应用程序流程
- 客户向 YARN 提交作业。
- 提交的作业可以是 Map Reduce 作业或任何其他应用程序/进程
- 此工作/申请由资源经理挑选
- 由于可以有多个作业/应用提交给资源管理器,因此资源管理器会检查调度算法、可用容量以查看提交的作业/应用是否可以启动
- 当资源管理器发现它可以启动新提交的作业/应用程序时,它会分配一个容器。容器是启动作业/应用程序所需的一组资源(CPU、内存等)
- 它检查哪个节点可以接受这个请求,一旦它找到一个节点,它就会联系适当的节点管理器以获取相同的信息
- 然后节点管理器将实际分配执行作业/应用程序所需的资源,然后在容器内启动应用程序主进程
- 应用程序主进程是作业/应用程序执行的主要进程。请注意,Application Master 是特定于框架的实现。 Map Reduce 框架有自己的 Application Master 实现。
- Application Master 将检查是否需要额外的资源或容器来执行作业/应用程序。当我们提交一个 Map Reduce 作业时就是这种情况,其中需要多个 Mapper 和 Reducer 来完成作业。
- 如果需要额外的资源,Application Master 将与资源管理器协商分配资源/容器。 Application Master 将负责执行和监控应用程序/作业的各个任务。
- Application Master 向资源管理器发出的请求称为资源请求。该请求包含执行单个任务所需的资源和位置约束。需要位置约束,因为任务需要在尽可能靠近数据的地方运行以节省网络带宽。
12 作为对资源请求的响应,资源管理器将在所选节点上生成一个节点管理器。然后节点管理器将为容器分配资源。在该容器中,任务将运行。此任务称为应用进程。
- 如果有多个 Mapper,那么将有多个应用程序进程在多个节点上运行(在一个容器中)。他们每个人都会将他们的热拍发送到他们的应用程序主进程。这就是 Application Master 将监控它启动的单个任务的方式。
- Application Master 还将其心跳信号发送给资源管理器,以指示作业/应用程序执行的状态。
- 完成任何应用程序执行后,该应用程序的应用程序主程序将被取消注册。
我希望这能说明问题