Hadoop被认为是运行在HDFS(分布式文件系统)上的MapReduce。通过YARN,Hadoop 2.0扩大了潜在应用的数量。
Hadoop一直是各种或多或少整合了统一大数据架构的开源创新的统称。部分人认为,Hadoop的核心是一个分布式文件系统(HDFS),然而HBase和Cassandra等一系列可替代HDFS的数据库正在动摇这一主张。
以往Hadoop有一个特殊的作业执行层——MapReduce,其在一个或多个可替代的大型并行数据持久层上执行,其中一个是HDFS。但是近期针对Hadoop推出的新一代执行层,即YARN(另一种资源协调者)消除了MapReduce上Hadoop环境严格的从属性。
关键的是,YARN消除了一个从一开始就在制约MapReduce作业执行的瓶颈。在YARN出现之前,所有的MapReduce作业必须要通过一个后台程序(即JobTracker)作为批处理程序运行,这一制约限制了它们的扩展性和处理速度。这些MapReduce制约迫使许多厂商自己想办法提高速度,以避开MapReduce与生俱来的瓶颈,IBM的Adaptive MapReduce就是其中的代表。
所有的这些可能会让人们想知道“Hadoop”与其他大数据与分析平台和工具在“堆栈”上的区别。YARN是大数据发展的一个基础性组件。YARN将传统的Hadoop放到了一个可组合的、契合目的(fit-to-purpose)的平台中,以处理数据管理、分析和交易计算等工作。
YARN将Hadoop转变为一个开源创新的初始定义所提及的通用分布式作业执行层。虽然它们保留了对MapReduce API的向下兼容性,并继续执行MapReduce作业,但是YARN引擎能够执行大量由其他语言所开发的作业。
重要的是,YARN能够成为针对大数据的不同Apache开源创新的统一线程。正如美国InfoWorld.com网站近期所指出的:“最大的胜利在于,MapReduce自身成为了一种利用Hadoop挖掘大数据的可能方式。”
这是YARN的目标,不过要想实现这一目标需要行业重新设计能够与之协同工作的Hadoop堆栈和工具。Apache组织在其官方声明中称:“通过移植,任何分布式应用都能够在YARN上运行。为了这一目的,Apache将维护一张与YARN兼容的应用列表,例如Facebook正在使用的社交图形分析系统Apache Giraph。其他部分也将如此。”
这听起来虽然不错,但是需要注意到相关的免责声明:即“通过移植”的字眼。Apache组织在声明中称,YARN的测试将达到厂商将分析开发工具移植到符合YARN输出工作的程度。将开发语言移植至YARN上并不是一件无关紧要的事情。
在整个行业和不同的Apache社区以及其他开源社区中,这是否将会持续发生?如果是的话,范围有多大?这些因素将决定YARN,即Hadoop 2.0特定功能的接受程度。考虑到Hadoop 2.0保留了对MapReduce的向下兼容性,YARN需要让MapReduce应用了解最新的情况。这可能会大幅降低开发者接受这一新框架的速度。
此外,从大数据应用开发所使用的替代语言(R语言)和替代平台(任何NoSQL解决方案)方面看,Hadoop 1.0或2.0版本是否能够长期保持其目前发展势头的前景仍不明朗。