MRv1角色
JobTracker
- 外围,主,单点
- 调度所有作业
- 监控整个集群的资源负载
TaskTracker
- 从,本身节点资源管理
- 和JobTracker心跳,汇报资源,被动获取Task
Client
- 作业为单位
- 布局作业计算散布
- 提交作业资源到HDFS
- 最终作业提交到JobTracker
弊病
- JobTracker:负载过重,单点故障
- 资源管理与计算调度强耦合,其余计算框架须要反复实现资源管理
- 不同框架对资源不能全局治理
YARN
- 客户端client将工作提交给ResourceManager(资源的齐全掌控者,长服务)
- ResourceManager找一台资源闲暇的服务器启动一个过程:ApplicationMaster(任务调度者,短服务)
- ApplicationMaster不理解集群资源,须要向ResourceManager申请工作资源
- ApplicationMaster找到对应节点启动创立容器Container
- NodeManager(长服务)向ResourceManager汇报Container信息和节点资源状况
MRv2 On Yarn
Yarn:解耦资源与计算
ResourceManager
- 主,外围
- 集群节点资源管理
NodeManager
- 与ResourceManager汇报资源
- 治理Container生命周期
MR
MR-ApplicationMaster-Container
- 作业为单位,调配到不同节点,防止单点故障
- 创立Task须要向ResourceManager申请资源
- Task-Container
YARN : Yet Another Resource Negotiater
- 核心思想:将JobTracker和资源管理和任务调度两个性能离开。别离由ResourceManager和ApplicationMaster过程实现。
- ResourceManager:负责整个集群的资源管理
- ApplicationMaster:负责应用程序的任务调度,工作监控
YARN的引入,使得多个计算框架可运行在一个集群中
- MapReduce,Spark,Strom
- 每个应用程序对应一个ApplicationMaster