/ 中存储网

YARN成为Hadoop新发力点 与Hadoop和YARN的组合有力

2014-09-27 18:25:27 来源:中存储网

YARN本质上是Hadoop的新操作系统,突破了MapReduce框架的性能瓶颈。Murthy认为Hadoop和YARN的组合是企业大数据平台致胜的关键。

Yahoo!最初开发Hadoop,是为了用于搜索和索引Web网页,目前很多的搜索服务都是基于这个框架的,但是Hadoop从本质上来说还只是一个解决方案。2013年的Hadoop峰会上,YARN是一个热点话题。三年的酝酿,YARN本质上是Hadoop的操作系统,突破了MapReduce框架的性能瓶颈。

MapReduce是在HDFS下操纵数据的主要机制。对于处理和分析海量数据(如多年的日志文件和其它半结构化的数据),这是一个很好的选择,但并不适合其它类型的数据分析。三年前,Hortonworks的创始人兼架构师Arun Murthy开始着手重新架构Hadoop(Hortonworks刚刚宣布在新一轮的融资中获得了5000万美元,Tenaya Capital和Dragoneer Investment Group主导了本轮融资,前投资人Benchmark Capital、Index Ventures和Yahoo!也参与其中),以使其成为一个更通用的大数据平台。

Arun Murthy提到:“着手构建Hadoop2.0时,我们希望从根本上重新设计Hadoop的架构,达到可以在Hadoop上运行多个应用程序并处理相关数据集的目的。这样一来,多种类型的应用程序都可以高效、可控地运行在同一个集群上。这是以Hadoop 2.0为基础的Apache YARN之所以能够诞生的真正原因。通过YARN管理集群的资源请求,Hadoop从一个单一应用程序系统升级成为一个多应用程序的操作系统。”

Murthy所说的其它类型的应用程序包括:机器学习,图像分析,流分析和互动查询功能等。一旦YARN全面投入使用,开发者将能通过YARN“操作系统”将存储在HDFS中的数据用于这些应用程序。Hive就是由Facebook开发的HDFS上层的SQL类型的数据仓库工具,但是后台的数据处理还要通过MapReduce。Hive很消耗资源,会影响其它同时运行的作业。其它Hadoop相关的数据分析子项目也都是类似的情况。

YARN是一个真正的Hadoop资源管理器,允许多个应用程序同时、高效地运行在一个的集群上。有了YARN,Hadoop将是一个真正的多应用程序平台,可服务于整个企业。Murthy表示通过YARN可以以一种前所未有的方式与数据交互,YARN已经被用于Hortonworks的数据平台,Hadoop和YARN的组合是企业大数据平台致胜的关键。

MapReduce2.0——YARN的基本架构

MapReduce在Hadoop 0.23时已经经历了一次大规模更新,新版本的MapReduce2.0被称为YARN或MRv2。

YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。

ResourceManager和每个slave结点的NodeManager(NM)构成了数据计算框架。ResourceManager负责最终将资源分配到各个应用程序。NodeManager是每台机器的框架代理,负责管理容器,监控它们的资源使用情况(CPU,内存,硬盘,网络),同时向ResourceManager/Scheduler汇报。 针对各个应用程序的ApplicationMaster实际上是一个详细的框架库,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。ApplicationMaster同时负责向Scheduler请求适当的资源容器,跟踪它们的使用状态并监控其进展。

ResourceManager中有两个主要组件:Scheduler和ApplicationsManager。

Scheduler负责给应用程序分配资源。Scheduler从某种意义上说是一种纯粹的调度,它不监控和跟踪应用程序的状态,另外它也不负责重启应用程序或者硬件故障造成的失败。Scheduler根据应用程序的资源需求执行调度,这些需求基于一个抽象的资源概念Container,包括内存、CPU、硬盘和网络等。   ApplicationsManager负责接收作业提交,将应用程序分配给具体的ApplicationMaster,并负责重启失败的ApplicationMaster。