YARN 解剖学

组件

资源管理器 :它是在系统中的所有应用程序之间分配资源的最终权限。它还负责分配容器,其中应用程序主机将在应用程序主机的容器分配之后启动并初始化它。

节点管理器 :它负责监视运行它的任何给定节点上的容器及其资源使用情况。

StackOverflow 文档

应用程序主管 :它负责与资源管理器协商,以便在数据节点上分配所需资源以执行任何作业,并与节点管理器协调以执行作业并监视容器及其资源消耗。

容器 :它表示处理任何作业所需的 CPU,内存,磁盘等资源。它是资源管理器成功分配资源的结果。Container 授予应用程序主机在群集中的特定计算机(节点)上使用特定数量资源的权限。同一台机器上可以有多个容器。

工作执行过程 StackOverflow 文档

  1. 用户/客户端提交应用程序并生成应用程序主机的规范。

  2. 资源管理器负责分配 Application Master 将启动的指定容器,然后启动 Application Master。每个工作都有自己独立的 Application Master。

  3. Application Master 启动并向资源管理器注册。这有助于客户通过 Application Master 直接了解作业执行的某些必要细节。

  4. 然后,Application Master 向资源管理器发出请求以分配具有所需资源的容器,以便在节点上执行作业。该资源请求是通过资源请求协议(RRP)进行的。

  5. 成功的容器分配 Application Master 将容器引入节点管理器它还提供了与在节点上启动容器的分配相关的详细信息。在启动容器之前,节点管理器使用资源管理器验证容器分配以避免虚假分配。

  6. 当应用程序代码在容器内执行时,容器通过应用程序特定协议(ASP)向其应用程序主机提供适当的信息。

  7. 在执行期间,客户端直接与 Application Master 连接,以通过应用程序特定协议获取状态,进度等。

  8. 一旦用户提交的应用程序的过程完成,Application Master 就会自动注销资源管理器并关闭,允许分配的容器释放并重新使用随之而来的是,为该作业获取的所有容器将再次被释放。