YARN 简介(Yarn 系列)

一 、YARN 介绍

    Apache Hadoop YARN 是 apache Software Foundation Hadoop的子项目,为分离Hadoop2.0资源管理和计算组件而引入。YARN的诞生缘于存储于HDFS的数据需要更多的交互模式,不单单是MapReduce模式。Hadoop2.0 的YARN 架构提供了更多的处理框架,不再强迫使用MapReduce框架。

 

YARN 简介(Yarn 系列)
 
 

 从hadoop2.0 的架构图可以看出,YARN承担着原本由MapReduce承担的资源管理的功能,同时将这部分的功能打包使得他们可以被新的数据处理引擎使用。这也同时简化了MapReduce的流程,使得MapReduce专注的将数据处理做到最好。使用YARN,可以用共同的资源管理,在Hadoop上跑很多应用程序。目前,很多机构已经开发基于YARN的应用程序。

 
YARN 简介(Yarn 系列)
 

当企业的数据在HDFS中是可用的,有多种数据处理方式是非常重要的。有了Hadoop2.0和YARN,机构可以采用流处理、互动数据处理方式以及其他的基于Hadoop的应用程序。

 

YARN 提供了些什么?

YARN从以下几个方面提升了Hadoop的计算能力:

1、可扩展性

      数据中心的数据处理能力继续快速增长。因为YARN ResourceManager 仅仅专注于 调度,能将大集群的管理变得更加简单。

2、兼容MapReduce

      现存的MapReduce 应用程序无需更改就能直接在YARN上运行

3、提高集群使用率

ResourceManager 是一个纯粹的调度系统根据capacity ,fair 或者SlAs等原则对集群进行优化利用。与之前不同的是,再也没有map slot和reduce slot,没有这两类资源的划分,有助于提高集群资源的利用。

4、支持MapReduce以外的计算框架

数据处理除了图形处理和迭代处理,还为企业添加了一些实时处理模型,从而提升企业对Hadoop投资回报率,

5、灵活

随着MapReduce 成为用户端库,它发展独立于底层的资源管理层,从而可以有多种灵活的方式。

 

 

YARN 是如何工作的?

   YARN的基本理念是将JobTracker/TaskTracker 两大职能分割为以下几个实体: 

(1)一个全局的资源管理ResourceManager

(2)每个应用程序一个ApplicationMaster

(3)每个从节点一个NodeManager

(4)每个应用程序一个运行在NodeManager上的Container 

 

 

ResouceManager 和 NodeManager 组成了一个新的、通用的、用分布式管理应用程序的系统。ResourceManager 对系统中的应用程序资源有终极仲裁的权限。ApplicationMaster 是一个特定于框架的实体,它的责任是同ResourceManager 谈判资源 ,同时为NodeManager(s)执行和监控组件任务。RessourceManager 有一个调度器,根据不同的约束条件,例如队列容量、用户限制等,将资源进行分配给各类运行着的应用程序。调度器执行调度功能是基于应用程序的资源申请。NodeManager 负责发布应用程序容器,监控资源的使用并向ResourceManager进行汇报。每个ApplicationMaster都有职责从调度器那谈判得到适当的资源容器,追踪它们的状态,并监控他们的进程。从系统的视图看,ApplicationMaster 作为一个普通的容器运行着。

相关推荐