前言:Hadoop2.0中的YARN
YARN产生背景
第一代MapReduce(MRv1)的局限性
-
扩展性差。MRv1中JobTracker兼备集群资源的管理和作业管理的调度和控制两大功能,使得JobTracker功能多,负载大
-
可靠性差。
-
资源利用率低。MapSolt和ReduceSolt不能混用,存在一个槽位资源紧张,而另一个操作资源空闲
-
无法支持多种计算框架。因为Hadoop1.0不能将资源管理与应用程序分开
-
非MapReduce作业
将资源管理功能抽象成一个独立的通用系统YARN(Yet Another Resource Negotiator,另一种资源协调者),进而诞生下一代MapReduce计算框架MRv2
YARN的优势
-
共享集群资源。
-
节约成本。多个框架一个集群,集群数量减少,人力资源成本减少
-
共享数据
YARN架构
组成
-
全局资源管理器
-
阶段管理器
-
应用程序主机
-
容器(Container)。YARN中的资源抽象,可动态调整;计算任务运行在container中
-
YARN通信协议-RPC协议(网络协议,通讯协议+寻址+数据序列化),为与互联网兼容
任务执行流程
当用户向YARN中提交一个应用程 序后,YARN将分两个阶段运行该应用程序:
-
第一个阶段是启动Application Master;
-
第二个阶段是由Application Master创建应用程序,为它申请资源Container,并监控它的整个运行过程,直至运行完成为止
调度器
- FIFO调度器。队列,弊端:大任务会占用集群资源,阻塞小任务的执行
- 计算能力调度器。分区队列。创建多个队列,划分不同资源
- 公平调度器。为所有运行的应用程序公平分配资源
阻塞小任务的执行 - 计算能力调度器。分区队列。创建多个队列,划分不同资源
- 公平调度器。为所有运行的应用程序公平分配资源