在实时数据的世界当中,我们为什么还要执着于Hadoop这一片森林?
作为一套以批量处理为主要诉求的架构方案,Hadoop仍然堪称大数据技术领域的荣耀长子。然而根据451研究集团的调查数据显示,其实际普及效果仍然不及显赫的声誉。
那些已经率先部署了Hadoop解决方案的企业可能希望稍稍放慢自己的前进脚步。伴随着Apache Spark以及其它一系列技术方案的出台(包括Storm、Kafka等等),我们似乎与Hadoop的批量处理思路渐行渐远、转而踏上了一条真正通往实 时性未来的发展道路。
批量并非
Cloudera公司的Doug Cutting是一位极为睿智的技术人员,同时也是一位高产的开源开发者。Hadoop、Lucene以及众多其它大数据事务领域的根本性工具都有他的参与。
尽管Cutting坦言实时流技术的重要性毋庸置疑,但他并不在乎Hadoop这一主要面向批量处理任务的方案,并在与我们的采访邮件当中指出:
这并不是说Hadoop的架构设计不应该针对批量处理,因为批量处理确实非常重要。事实上,批量处理、特别是 MapReduce下的批量处理可谓最理想的起步方案,因为其相对容易实现而且具有重要的实际价值。在Hadoop诞生之前,我们根本没办法利用开源软件 在商用硬件基础上存储并处理PB级别的数据。Hadoop的MapReduce帮助技术人员在资源容量领域迈进了重要的一步。
我们很难准确衡量大数据的商品化发展趋势对于整个世界的运作到底起到了怎样重要的作用。在Hadoop诞生之前面,我们面临着无数存储与分析容量方面的难题。在这种情况下,Hadoop让我们以可承受的使用成本拥有了这种关键性能力。
总体而言,Hadoop是大数据民主化进程——或者说“走入寻常企业家”的重要前提。
向数据流处理的转变?
不过要利用大数据获取实际效益仍然非常困难。正如DataStax公司首席倡导者Patrick McFadin在一次采访中所言,从企业数据当中获取实际价值并不像很多人宣扬的那样简便:
我们都听说过PB级别数据在存储与分析领域的投资回报问题。谷歌、雅虎以及Facebook确实在投资回报方面交出了理想的答卷,但遗憾的是众多企业仍然找不到充分分析并运用全部数据的方式。第一:收集全部数据。第二:……第三:利润!
在数据收集与构成利润之间存在着一系列步骤,而这些步骤实现起来确实相当麻烦。随着企业开始寻求提升自身的数据实时分析能力,新技术方案的出炉逐渐使其理想变成了现实。
McFadin对这套新型大数据堆栈中的关键性元素进行了深入剖析。首先,他表示其中应包含一套查询系统,最典型的代表包括Kafka、 RabbitMQ以及Kinesis。接下来,企业还需要拥有一套流处理层,其中可能包含Storm、Spark Streaming或者Samza。在调整存储方面,企业通常会选择Cassandra、HBase、MongoDB或者以MySQL为代表的关键型数据 库。
最值得关注的是批量处理仍然适用于哪些领域。根据McFadin的观点,“批量机制目前在处理领域仍然极具实用性”——具 体而言,类似于汇总与深层分析。批量处理与实时技术的概念合并已经构建起所谓“Lambda架构”,其中涉及到三种组成元素的协同作用:批处理、速度以及 服务交付。
换句话来说,批量处理仍然拥有自己的重要意义。
将批量机制扔进历史的垃圾箱
但并不是每个人都认同这种观点。举例来说,Zoomdata公司CEO兼联合创始人Justin Langseth将Lambda定性为一种“不必要的妥协”,并在采访中告诉我们,“目前已经出现了能够从来源处处理数据、传输数据、存储数据并进行数据 分析及可视化处理的端到端工具,”而且完全无需涉及批量化机制。
根据他的观点,批量处理机制是特定时代下不可避免的错误,一种旧日大数据遗留下的废弃成果:
实时数据显然最好以流方式加以处理。但企业也完全能够将历史数据纳入流处理范畴,正如我们的DVR能够以流媒体方式将《乱 世佳人》或者上周的《美国偶像》传输到用户的电视上。这种差别非常重要,因为我们Zoomdata公司认为以流方式进行数据分析能够带来可观的可扩展能力 与灵活性提升,而且无需考虑数据对象到底属于实时数据还是历史数据。
不过除了可扩展能力与灵活性收益之外,将批量机制从大数据流程当中移除还能起到显著的简化效果。正如Langseth所言,“这能极大简化大数据架构,因为使用者不必再为批量窗口、从批量流程故障中进行数据恢复以及其它种种麻烦事忧心。”
双方为何不能和谐相处?
短时间内恐怕还无法实现,Cutting表示。
相对于彻底将Hadoop等旧有技术方案彻底扔进垃圾堆,Cutting更倾向于将世界看成一个“流机 制确实不错,但Cloudera的Enterprise Data Hub同样值得关注”式的和谐生态圈。事实上,他同时补充称,“我认为未来不会出现指向流机制的显著转变。相反,流机制将加入到处理选项集合当中,并供大 家在合适的情况下作出选择。”
更有趣的是,Cutting认为大数据在创新领域的“大爆炸”式增长——坦率地讲,行动较为迟缓的企业IT部门已经跟不上这种突飞猛进的节奏——已经逐渐止步,而相关业界将提供多种良好的方式解决由此带来的技术难题:
我认为像Spark这样的关键性技术方案已经不会在整体堆栈当中频繁出现,因此随着时间的推移,我们将 建立起一套标准化工具集合,从而帮助大部分用户从其大数据应用程序当中获得理想的容量水平。Hadoop的诞生引燃了大数据项目寒武纪大爆发的点火索,但 我们可能会很快进入一段趋于正常的演化周期,并将这些技术方案推广到更多行业当中。
DataStax公司社区经理Scott Hirleman也对此表示赞同:“批机制不会被彻底抛弃,因为包含大量数据的超大规模分析场景将一直存在下去。”他承认“流分析机制将引发业界的高度关注”,但同时坚持认为这种趋势会给各类大数据规划带来怎样的影响“目前还言之过早”。
简而言之,流分析的主要意义在于“补充”而非“淘汰”。其对于Hadoop等面向批量机制的系统而言是一种极好的补充,而不会将这位开启大数据时代的元老直接送进养老院。