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是一个在线计算系统,而不是批处理计算系统。