返回

RM 携手 AM 迈向成功:深入解读 Application Master 管理策略

后端

RM 与 AM:携手并进的动态二人组

在 Yarn 架构中,ResourceManager (RM) 与 Application Master (AM) 是密切合作的伙伴。RM 负责 Yarn 集群的资源管理和调度,而 AM 则负责协调和管理单个应用程序的执行。通过紧密的协作,RM 与 AM 共同确保应用程序能够高效地利用集群资源,并在应用程序遇到故障时提供必要的容错机制。

AM 的诞生与成长:从提交到启动

应用程序的旅程始于向 Yarn 集群提交作业。在收到作业后,RM 会为该作业创建一个 AM 容器。该容器包含了 AM 所需的资源和运行环境,例如 CPU、内存、网络等。AM 容器启动后,AM 便开始执行一系列任务,包括:

  • 注册到 RM:AM 会向 RM 注册,以便 RM 能够跟踪 AM 的状态和资源使用情况。
  • 协商资源:AM 会与 RM 协商资源,以满足应用程序的计算和存储需求。
  • 启动任务:AM 会启动任务来执行应用程序的计算任务。
  • 监控任务:AM 会监控任务的执行情况,并在任务失败时重新启动任务。
  • 报告状态:AM 会定期向 RM 报告应用程序的状态和进度。

AM 与 RM 的亲密合作:信息交换与资源分配

RM 与 AM 之间的通信是通过 AM-RM 协议进行的。AM-RM 协议定义了 AM 与 RM 之间交换信息的格式和语义。AM 与 RM 之间的主要通信内容包括:

  • AM 注册:AM 向 RM 注册,并提供应用程序的信息,如应用程序名称、类型、所需资源等。
  • 资源请求:AM 向 RM 请求资源,以启动和执行任务。
  • 资源分配:RM 根据集群的资源情况,为 AM 分配资源。
  • 任务启动:AM 向 RM 报告任务的启动信息,包括任务的类型、所需资源、任务的执行环境等。
  • 任务状态报告:AM 定期向 RM 报告任务的状态和进度。
  • 任务失败报告:AM 向 RM 报告任务的失败信息,以便 RM 能够重新启动任务。

AM 的谢幕与重生:容错机制与应用程序终止

应用程序的执行过程难免会遇到故障。为了保证应用程序的可靠性,Yarn 提供了完善的容错机制。当 AM 发生故障时,RM 会自动启动一个新的 AM 来接管应用程序的执行。新的 AM 会从 RM 获取应用程序的状态信息,并继续执行应用程序。

应用程序的终止可以由用户主动触发,也可以由 RM 自动触发。当用户主动终止应用程序时,AM 会向 RM 发送终止请求。RM 会停止 AM 容器并释放 AM 占用的资源。当 RM 检测到 AM 发生故障时,也会自动终止应用程序。

结语:RM 与 AM 的协奏曲

RM 与 AM 的密切合作是 Yarn 架构的重要组成部分。通过紧密的协作,RM 与 AM 共同确保应用程序能够高效地利用集群资源,并在应用程序遇到故障时提供必要的容错机制。理解 RM 与 AM 之间的关系对于优化 Yarn 集群性能至关重要。