RM 携手 AM 迈向成功:深入解读 Application Master 管理策略
2023-09-09 13:54:29
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 集群性能至关重要。