本文最后更新于356 天前,其中的信息可能已经过时,如有错误请发送邮件到takumijie@qq.com
Hadoop Yarn 资源管理框架(CPU Memory)

1.Yarn基本概念&工作流程(Hadoop 2.x加入Yarn)

1.基本概念
-
Client:
客户端(Client)是任务提交的发起方,负责将 MapReduce 任务提交给集群中的 Resource Manager。 -
Resource Manager:
资源管理器(Resource Manager)是 YARN 中的核心组件,负责全局资源管理和任务调度。它接收来自 Client 的任务提交请求,将任务分配到集群中的各个节点。
Resource Manager 会与 Node Manager 交互,了解节点状态,分配和调度资源。
-
Node Manager:
节点管理器(Node Manager)是每个工作节点上的代理,负责监控该节点上的资源使用情况和容器(Container)状态。
Node Manager 会根据 Resource Manager 的指示在本地启动容器,并在容器中执行任务。 -
Application Master (App Mstr):
应用主程序(Application Master)是每个应用的协调者,它负责管理一个应用的生命周期,包括与 Resource Manager 协商资源、将任务分配给容器。
每个应用(如 MapReduce 任务)都会有一个独立的 Application Master,运行在某个容器中。 -
Container:
容器(Container)是 YARN 中分配的最小资源单位,用于运行实际的任务(如 Map 或 Reduce 任务)。
Resource Manager 将资源分配给 Node Manager,Node Manager 启动容器并执行任务。
2.工作流程(箭头说明)
- Job Submission(任务提交):
客户端向 Resource Manager 提交 MapReduce 任务,Resource Manager 接收任务并分配资源。 - Resource Request(资源请求):
Application Master 向 Resource Manager 请求资源,以便启动 Map 和 Reduce 任务。
Resource Manager 根据集群资源的可用情况,调度并分配容器。 - Node Status(节点状态):
Node Manager 向 Resource Manager 定期报告节点的资源使用情况,包括 CPU、内存等信息。 - MapReduce Status(MapReduce 状态):
Application Master 会将 MapReduce 任务的状态返回给 Resource Manager,Resource Manager 可以将任务的状态返回给客户端。
3.总结
- Client 提交任务给 Resource Manager。
- Resource Manager 分配资源,启动 Application Master。
- Application Master 向 Resource Manager 请求更多资源,并通过 Node Manager 启动 Container 来执行 MapReduce 任务。
- Node Manager 管理节点上的容器,并将状态反馈给 Resource Manager,确保任务正常运行。
