Hadoop_YARN
YARN主要架构

ResourceManager
集群资源的协调者和管理者,负责给用户提交的所有程序分配资源。
NodeManager
集群具体资源的管理者,负责节点内所有容器的生命周期的管理,资源监控。
具体:
- 启动时向
ResourceManager注册并定时发送心跳消息,等待ResourceManager的指令; - 维护
Container的生命周期,监控Container的资源使用情况; - 管理任务运行时的相关依赖,根据
ApplicationMaster的需要,在启动Container之前将需要的程序及其依赖拷贝到本地。
ApplicationMaster
负责协调来自ResourceManager的资源,并通过 NodeManager 监视容器内资源的使用情况,同时还负责任务的监控与容错。
具体:
- 根据应用的运行状态来决定动态计算资源需求;
- 向
ResourceManager申请资源,监控申请的资源的使用情况; - 跟踪任务状态和进度,报告资源的使用情况和应用的进度信息;
- 负责任务的容错。
Container
YARN资源的抽象,YARN 会为每个任务分配一个 Container,该任务只能使用该 Container 中描述的资源。ApplicationMaster 可在 Container 内运行任何类型的任务。
YARN工作原理图
说明:一下内容引入:BigData-Notes

Client提交作业到 YARN 上;Resource Manager选择一个Node Manager,启动一个Container并运行Application Master实例;Application Master根据实际需要向Resource Manager请求更多的Container资源(如果作业很小, 应用管理器会选择在其自己的 JVM 中运行任务);Application Master通过获取到的Container资源执行分布式计算。