YARN或将成为Hadoop新发力点

2013/12/23 22:47
阅读数 171

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

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。

YARN在接口上兼容于此前的稳定版本(Hadoop 0.20.205),这意味着以前的MapReduce作业重新编译后就可以在YARN下运行。(编译/周小璐,审校/仲浩)

 

展开阅读全文
打赏
1
9 收藏
分享
加载中
更多评论
打赏
0 评论
9 收藏
1
分享
返回顶部
顶部