概述Hadoop2.0中Yarn

什么是Yarn

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

为什么要使用Yarn

Hadoop经历主要经历了两个版本。在Hadoop v2.0的版本中,YARN被引入,YARN的引入主要是解决了Hadoop v1.0中的一些问题
在Hadoop v1.0的框架中,对数据的处理、资源调度主要依赖MapReduce完成
1.0的JobTracker和NameNode是单点,一旦挂掉,整个集群会瘫痪
2.0不再是单点,虽然没有了JobTracker和TaskTracker,但是增加了ResourceManager,NodeManager,Application Master,Container,资源使用效率更高
可以说2.0的出现解决了1.0设计的缺陷,让Hadoop存在的集群缺陷更加完善

Yarn的基本组件

将JobTracker和TaskTracker进行分离,它由下面几大构成组件:
基本组件

  1. ResourceManager:
    包含两个组件,一个是调度器(Scheduler),另一个是应用管理器(ASM)。RM是一个中心的服务,它做的事情是调度、启动每一个Job所属的ApplicationMaster、另外,监控ApplicationMaster的存在情况。
  2. NodeManager:
    是每个节点上的框架代理,主要负责启动应用所需的容器,监控资源(内存,CPU,磁盘,网络等)的使用情况并将之汇报给调度器。
  3. ApplicaionManager:
    主要负责接收作业,协商获取第一个容器用于执行ApplicationMaster和提供重启失败AM container的服务。
  4. ApplicationMaster:
    负责一个Job生命周期内的所有工作,类似老的框架中Job Tracker。但注意每一个Job(不是每一种)都有一个Application Master,它可以运行在ResourceManager以外的机器上。

YARN优势

  1. YARN的设计减小了JobTracker的资源消耗,并且让监测每一个Job子任务(tasks)状态的程序分布式化了,更安全、更优美。
  2. 在新的Yarn中,ApplicationMaster是一个可变更的部分,用户可以对不同的编程模型写自己的AppMst,让更多类型的编程模型能够跑在Hadoop集群中。
  3. 对于资源的表示以内存为单位,比之前以剩余slot数目更加合理。
  4. MRv1中JobTracker一个很大的负担就是监控job下的tasks的运行状况,现在这个部分就扔给ApplicationMaster做了,
    而ResourceManager中有一个模块叫做ApplicationManager,它是监测ApplicationMaster的运行状况,如果出问题,会在其他机器上重启。
  5. Container用来作为YARN的一个资源隔离组件,可以用来对资源进行调度和控制。

你可能感兴趣的:(大数据,Hadoop,Yarn)