Apache Haddo是一个批处理计算引擎,它是大数据核心的开源软件框架。Hadoop并不适用于真正实时数据可见性所需要的在线互动式数据处理,是这样的吗?Hadoop创造者兼Apache Hadoop项目创始人(同时也是Cloudera公司首席架构师)Doug Cutting表示,他相信Hadoop有一个超越批处理的未来。
Cutting表示:“批处理有用武之地,例如你需要移动大量数据以及分析所有数据的时候,但我认为,人们真正想要的是批处理和在线计算的结合体。Hadoop将成为企业未来的主流数据处理系统的内核。”
Hadoop
在纽约O'Reilly Strata Conference + Hadoop World大会上,Cutting解释了Hadoop堆栈的核心思想以及其发展方向。
“Hadoop被看作是一个批处理计算引擎,事实上,这是我们开始的地方(结合MapReduce),”Cutting表示,“MapReduce是一个很棒的工具,有很多关于如何在MapReduce上部署各种算法的书籍。”
MapReduce是一个编程模型,由谷歌公司设计,用于使用分布式计算批量并行处理大规模数据。MapReduce得到一个输入,然后将其分成很多更小的子问题,这些问题呗分配到节点来并行处理。然后,它们重新组合成那些子问题的答案以形成输出。
“这是非常有效的,”Cutting表示,“它允许你移动你的计算到你的数据,这样一来,当你处理数据的时候就没有到处复制数据,并且它还形成了一个共享平台。构建分布式系统是一个复杂的过程,不是‘一夜间’就能完成的事情,所以我们不希望反反复复重新部署它。MapReduce被证明是一个坚实的基础,在它上面,我们看到了已经开发了很多工具,例如Pig和Hive。”
他补充说:“当然,这个平台不仅仅针对批处理计算,它是一个很通用的平台。”
Hadoop平台的特性
为了说明这一点,Cutting描述了他认为的Hadoop的两个核心主题。
首先,Hadoop平台具有很好的可扩展性,它适用于存储在内存中的小数据集,同时,它还能够扩展到处理庞大的数据集。
“而可扩展性的一个关键因素是经济承受能力,虽然我们很少听到这方面的讨论,”他表示,“我们在商品硬件上运行是因为它允许你进一步扩展。如果你可以购买10倍的存储量,那么,你就可以存储10倍的数据量。所以经济承受能力是关键,这也是我们使用商品硬件的原因,因为这是最经济实惠的平台。”
他指出,同样主要的是,Hadoop是开源的。
“同样地,开源软件是非常实惠的,”他表示,“人们开发其应用程序时,最抵触的平台是免费的平台。你可能向供应商付费,但你是为他们所提供的价值而付费,你不需要年复一年地付费,随着时间的推移,供应商需要通过向你提供价值来赢得你的信任和信心。”
除此之外,Hadoop的其他特性还包括:
“有这样一个概念,在你加载数据的时候,你不需要使用严格的模式来限制你的数据,”他表示,“而对于Hadoop,你可以以原始形式来保存数据,然后,当你使用数据的时候,再使用不同的模式。”
大数据领域另一种流行的做法是,在通常情况下,与更聪明的算法相比,分析更多的数据能够帮助你更好地了解你的问题。也就是说,你应该花更多时间来收集数据,而不是调整较小数据集所采用的算法。直观地说,这很像是具有更高分辨率的图像,如果你试图分析图片,你应该选择放大高分辨率图片,而不是低分辨率图像。
HBase是Hadoop中在线计算的例子
他指出,批处理并不是Hadoop的关键特性,而是Apache HBase,它是Hadoop堆栈的一部分,是非常成功的开源非关系型分布式数据库(模仿谷歌的BigTable)。HBase是一个在线计算系统,而不是批处理计算系统。
Cutting解释说:“HBase也支持批处理,它与HDFS以及Hadoop堆栈的其他组件共享存储,我认为这也是其如此受欢迎的原因之一。HBase被整合到系统的其他部分中,而不是成为一个独立的系统,它可以与堆栈的其他组件进行共享:它可以共享可用性、安全性、灾难恢复。”
展望Hadoop“圣杯”
如果Hadoop不单单是批处理计算平台,而是成为一个更通用的数据处理平台,它将会变成什么样,并且它将如何达到那一步?
“对于大数据系统的‘圣杯’,我们认为应该具备很多因素,”Cutting表示,“当然,我们会希望它是开源的,并且能在普通硬件上运行。我们还希望它具有线性扩展:如果你需要存储10倍数据,你只需要购买10倍的硬件即可,而不管你的数据集变得多大,都可以这样扩展。”
Cutting表示,性能方面同样是如此,对于批处理性能,如果你需要更大的批处理吞吐量或更小的延迟,你只需要增加硬件数量即可。而对于交互式查询,道理同样如此。增加硬件将为你带来性能和数据量方面的线性扩展。
他补充说:“人们认为当你采用大数据平台时,你需要放弃某些东西,我不这样认为,我认为在长期来看,我们不需要放弃任何功能。”
谷歌为我们提供了路线图
“谷歌为我们提供了路线图,”他表示,“我们知道我们的前进方向。在他们开始发布他们的GFS和MapReduce论文后,我们就很快复制到Hadoop项目中,这些年以来,谷歌在很多方面激发了这个开源堆栈。谷歌的Sawzall系统催生了Pig和Hive,而BigTable直接启发了HBase。我很激动地看到今年谷歌发表的名为Spanner的文章,其中介绍了在分布式系统(在全球各地的数据库上运行的多表传输)中实现传输的系统,很多人都会认为这不会很快实现,但却为我们指明了前进的方向。”
Cutting指出,Spanner是一种复杂的技术,它并不会那么快成为Hadoop的一部分,但它指明了一个方向。同时,他还提到了Impala,Cloudera发布的新的数据库引擎,它可以使用SQL查询存储在HBase中的数据集。
Cutting表示:“我们知道我们的前进方向,并且,我们知道如何实现我们的目标。所以,我鼓励大家现在开始使用Hadoop,因为在未来你将获得更多收获。”