1Yarn简介:
一种新的Hadoop资源管理器,一个通用资源管理系统,为上层 提供统一的资源管理与任务调度及监控,提高了集群管理效率,资源使用率,据共享效率
2MRv1
MRv1包括三个部分:运行时环境(JobTracker和TaskTracker)、编程模型(MapReduce)和数据处理引擎(Map任务和Reduce任务)
主要问题:
1)JobTracker 单点故障,如果他出问题,整个系统无法运转
2)JobTracker 负载过重,限制了集群的扩展,
3)仅支持MR计算框架,适合批处理,基于磁盘的计算
4)资源与计算没有很好的解耦设计
3 Yarn 特点
1)资源管理与计算框架解耦设计
2)运维成本显著下降
3)集群内数据共享一致,数据不在需要集群间拷贝转移,达到共享互用
4)避免单点故障,集群资源扩展得到合理解决
4 Yarn 运行流程
运行流程详解:
1 客户端提交了一个 application
2 ResourceManager 分配资源,给NodeManager 下一个指令 开启ApplicationMaster
3NodeManager接收到了指令,创建一个Container 运行ApplicationMaster
4 ApplicationMaster 注册到ResourceManager里,申请资源
5 ApplicationMaster 申请到资源之后,给NodeManager下达指令,开启任务
6NodeManager 接收到ApplicationMaster指令,启动对应的Task
7Task运行完成之后给AM汇报心跳
8所有任务都完成之后AM向RM申请注销自己
5常用的调度策略
调度名称 | 特点 |
FIFO Scheduler(First In First Out,先进先出) | 默认的队列内部调度器,只有一个队列,所有用户共享 ,简单好理解,无法控制用户的资源使用,造成集群的可用性很差。一般不在生产环境使用。 |
Capacity Scheduler(容器调度器) | 多用户、分队列、ACL控制、不支持抢占式,队列内部依然是FIFO,也可以采用Fair |
Fair Scheduler(公平调度器) | 多用户、分队列、ACL控制、支持抢占式,队列内部不是FIFO,而是公平分配的方式 |