一直以来是什么限制着Hadoop的发展?更重要的是,Hadoop的未来发展会是怎样?
对于Hadoop的各种批评主要围绕在其扩展限制,而这里最大的问题是其工作处理。Hadoop中的所有工作都是通过被称为JobTracker的守护程序进行批处理,这制造了一个可扩展性和处理速度的瓶颈。
而在Hadoop 2,这种JobTracker的方法已经消失。Hadoop使用了全新的工作处理框架,使用两个守护程序:ResourceManager—管理系统中的所有工作,以及NodeManager—在每个Hadoop节点上运行,并让ResourceManager知道节点上发生的情况。每个正在运行的应用程序也有自己的管理程序—ApplicationMaster。
MapReduce也与之前完全不同,Apache给了它一个全新的名称:YARN,或者Yet Another Resource Negotiator,另一种资源协调者,新的MapReduce运行作为其很多可能的组件之一。事实上,Apache声称,任何分布式应用程序都可以在YARN上运行,虽然需要一些移植。为此,Apache提供了一份与YARN兼容的应用程序列表,例如社会图标分析系统Apache Giraph(Facebook在使用)。
Apache明智地决定不破坏向后兼容性,因此,MapReduce 2仍然将采用相同的API,现有的工作只需要重新编译就能正常工作。
YARN让Hadoop可以与其他Apache项目实现更多的跨平台兼容性,来处理大数据。如果你使用其中一个平台,那么使用其他平台就会变得更加容易。Hadoop的这种改进将帮助推动Apache的其他项目。
这里最大的改进就是,MapReduce本身成为通过Hadoop挖掘数据的很多方式的一种。Apache自己的Spark(移植到YARN的另一种方式)可能比MapReduce更适合某些类型的工作,Hadoop 2给了你更多选择,让你选择最合适的引擎。
两个大型供应商Cloudera和Hortonworks对于YARN的重要性有着共同的看法,虽然他们从完全不同的方向使用Hadoop。Cloudera的Impala允许对HDFS存储的数据运行低延迟性SQL查询,这使其非常适合实时分析;而Hortonworks选择使用Apache的原生Hive技术,该技术非常适合大数据仓库操作(例如有很多连接型操作的长时间运行的查询)
移植应用程序到YARN并不是简单的工作,Hadoop在这方面带来的回报将取决于YARN在新框架内的部署情况。Cloudera和Hortonworks都是Hadoop 2的坚实支持者,他们并没有转向其他技术或者坚持上一代技术,从这一点来看,Hadoop 2并不只是烟雾或者上一代的镜像。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。