ResourceManager
ResourceManager负责告诉ApplicationMaster哪些Containers可以用
组件: Scheduler (对application进行资源分配管理)
组件: ApplicationManager (接受client提交的job请求, 为application分配一个container作为ApplicationMaster)
ApplicationMaster
ApplicationMaster的主要作用是向ResourceManager申请资源
和NodeManager协同工作来运行应用的各个任务,然后跟踪它们状态及监控各个task的执行,遇到失败的task还负责重启它。
ResourceManager依然负责对整个集群的资源管理 但是在任务资源的调度方面只负责将资源封装为Container分配给ApplicationMaster的一级调度, 二级调度的细节将交给ApplicationMaster去完成, 这大大减轻了ResourceManager的压力,使得ResourceManager更加轻量。
NodeManager
负责接收ResourceManager的资源分配请求,通过和ApplicationMaster交互分配具体的Container给application。
负责监控并报告Container使用信息给ResourceManager。
接收ResourceManager的请求,分配Container给应用的某个任务 和ResourceManager交换信息以确保整个集群平稳运行。 ResourceManager就是通过收集每个NodeManager的报告信息来追踪整个集群健康状态的, 而NodeManager负责监控自身的健康状态。 管理每个Container的生命周期 管理每个节点上的日志 执行Yarn上面应用的一些额外的服务,比如MapReduce的shuffle过程
任务提交流程
client端 向RM中的 ApplicationManager组件 发送提交Job请求
RM 找到可以运行一个Container的NodeManager,并在这个Container启动AM实例
AM向RM进行注册,RM告诉AM哪些NodeManger有资源,AM再去找NondeManger去申请资源请求分配Container
NodeManager 将task的运行状态 发送给AM 用来监控
application执行完成后, AM向RM取消注册然后关闭
作者:阿武z
链接:https://www.jianshu.com/p/11c906c141ff
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦