YARN的架构
一. RM(ResourceManage) + N NM (NodeManage)
ResourceManage
一个集群active状态的RM只有一个,负责整个集群的资源管理和调度。
- 处理客户端的请求。
- 启动/监控ApplicationMaster(一个作业对应一个AM)
- 监控NM
- 系统的资源分配和调度。
NodeManager
整个集群中有N个,负责单个节点的资源管理和使用以及task的运行情况。
- 定期向RM汇报节点的资源使用请求和各个Container的运行情况。
- 接收并处理RM的container启停的各种命令。
- 单个节点的资源管理和任务管理,
ApplicationMaster
每个应用/作业对应一个,负责应用程序的管理
- 数据切分。
- 为应用程序向RM申请资源(container),并分配给内部系统。
- 与NM通信以启停task. task是运行在container中的。
- task的监控和容错
Container
对任务运行情况的描述 cpu,memory 环境变量
YARN执行流程
- 用户向YARN提交作业。
- RM为该作业分配第一个container(AM)
- RM会与对应的NM通信,要求NM在这个conainer上启动应用程序的AM
- AM首先向RM注册,然后AM将为各个任务申请资源,并监控运情况。
- AM采用轮训的方式通过RPC协议向RM申请和领取资源。
- AM申请到资源后,便和相应的NM通信,要求NM启动任务。
- NM启动我们作业对应的task.
网友评论