YARN集群架构
玩Hadoop的不知道YARN?这简直是天大的笑话!之前介绍Hadoop核心组件的时候(详见《Hadoop的“前世今生”》那篇博文)就曾提到过“YARN是实现了集群资源管理以及作业调度的框架”,那么本文就对YARN集群架构做进一步的介绍。
YARN的全称是:Yet Another Resource Negotiator,YARN集群总体上是经典的Master/Slave架构,主要由ResourceManager(Master)、NodeManager(Slave)、ApplicationMaster、Container等几个组件构成。下面对各个组件进行介绍:
1. ResourceManager
以后台进程的形式运行,负责对集群资源进行统一管理和任务调度。主要职责如下:
- 接收来自客户端的请求。
- 启动和管理各个应用程序的ApplicationMaster。
- 接收来自ApplicationMaster的资源申请,并为其分配Container。
- 管理NodeManager,并接收来自NodeManager的资源和节点健康情况的汇报。
2. NodeManager
集群中每个节点上的资源和任务管理器,以后台进程的形式运行。
3. Task
应用程序的具体执行任务。一个应用程序可能有多个任务,例如,一个MapReduce程序可以有多个Map任务和多个Reduce任务。
4. Container
封装了资源(CPU、内存等)。一个应用程序所需的Container分为两类:运行ApplicationMaster的Container和运行各类Task的Container。
5. ApplicationMaster
一个应用程序对应一个ApplicationMaster,在用户提交一个应用程序时,会启动一个ApplicationMaster实例,ApplicationMaster会启动所有需要的Task来完成它负责的应用程序,并且监视Task的运行状态和运行进度,重新启动失败的Task,等等。
总结:ResourceManager管理整个集群;NodeManager管理集群中单个节点;ApplicationMaster管理单个应用程序(集群中可能同时有多个应用程序在运行,每个应用程序都有各自的ApplicationMaster)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通