Webtrends公司的IT团队在Apache Spark这款处理引擎还是一项学术研究项目的时候就已经开始使用它并沿用至今。但当Webtrends在2014年年中部署了一套基于Hadoop的大数据环境来对分析应用程序进行增强的时候,Spark架构便成了一个有限的角色:有关数据索引的聚合细节有助于用户发现相关信息。现在,一切都已改变,而且该公司正在花大力气学习Spark并作为其大数据平台升级版本的一部分。
Webtrends从网站,移动设备和物联网收集用户活动数据提供给企业客户用于分析,它将Spark置于一款名为Infinity Analytics应用程序的核心位置,该应用在2016年初开始了基本版测试,而现在正在向客户进行营销。该公司建立了一个拥有160个节点的Spark系统来支持在线营销活动的实时优化,而这是以进入Hadoop集群的活动数据流的快速分析为基础的。“我们基本上已经解除了Spark对数据湖的束缚来做所有的计算,”CTO Peter Crossley说。
越来越多的企业同样正将注意力转向Spark以帮助对大数据处理工作进行加速。独立的统计数据很难得到处理引擎的采用,在2014年五月之后,这才以1.0的版本通过Apache Software Foundation变得可用。但是,Databricks公司是一家初创供应商,它是Spark开发背后的驱动力,公司负责人表示有超过500家企业已经在应用程序的生产中部署了该项技术。而且Spark显然已经与Hadoop一并跻身大数据聚光灯之下,它和Hadoop经常但并不总是进行配对。
Spark的最开始的名片是它能比MapReduce更快地运行批处理应用程序,而其编程环境和执行引擎是嵌入在Hadoop原始版本中的。Spark的支持者宣称其核心内存引擎在处理数据上可以比MapReduce快100倍。批处理任务仍是Spark的一个很大的应用方面,分析大量数据和对数据进行提取,转换和加载(ETL)例程的前期准备也同样如此。
但是,对于Spark架构来说远不止如此。该技术还能通过一组附加组件来处理更多的互动和实时工作负载,这些附加组件包括机器学习库,流处理模块和图形处理接口。除了其处理速度和应用程序多功能性,Spark可以让用户避免在MapReduce中编程。相反,他们可以使用更高级别且更为熟悉的语言,如Java,Python,Scala,SQL和R。
Hadoop根本不需要成为以下愿景的一部分:Spark能够针对数据存储以独立模式运行,而非Hadoop分布式文件系统——例如,NoSQL数据库和Amazon Simple Storage Service。同样的,并不只是Databricks在将该处理引擎推向前进。IBM,Microsoft,Amazon Web Services以及Hadoop的分销商Cloudera, Hortonworks和 MapR Technologies还有其他大数据厂商同样对Spark提供并支持。
另一方面,一些早期使用者表示,Spark是一项有待进一步成熟的新兴技术。例如,他们引用了内存管理问题,与MapReduce相比缺失的功能,不完整的数据加密支持,以及缺乏监控和管理Spark系统的工具。要填补这些空白,对于Spark架构的开发步伐已然是迅速而剧烈的了:在2015年Apache开源软件有9个发布版,而到今年为止已经发布了5个版本,包括在7月份可用的Spark2.0版。
但是成熟度问题并不会对诸如Webtrends之类的用户造成困扰。从Crossley的立场来看,Spark在生产上显然是已经就绪了的。“它是一项稳定的技术,对于部署Spark我丝毫没有犹豫,”他说。
MapReduce不会为了Webtrends正在关注的Infinity Analytic应用程序高速性能而进行削减,但Crossley将Spark和它的Spark Streaming模块描述为一个完美的组合。“我们的想法是数据通过我们的系统进行无缝迁移,而且这是实时发生的。要以一种快速的方法来查看这些数据并进行审计的确需要拥有像Spark这样的设施。”
每天Webtrends都会对超过130亿的在线事件(例如互联网点击流)筛选数据到它的Hortonworks,Hortonworks是基于Hadoop的集群。它要花费12个小时来让传入的数据在公司的第一款名为Explore的大数据分析应用程序中可用。
有了Spark平台以流的方式来处理数据和针对其运行自动机器学习的算法,在Infinity Analytics的最初用户企业中,营销经理和数据科学家们能够在几分钟内获得信息,Crossley说。他的目标是将延时降至几秒钟,这样客户端就能为网站访问者动态调整网页和提供营销。
Synchronoss Technologies公司同样将其大数据环境集中在Spark上。“我们非常将Spark作为我们的数据处理引擎,” Bridgewater, N.J.公司的大数据分析师Suren Nathan说,该公司给移动网络运营商和合作企业出售移动管理应用程序和相关的分析服务。
大数据实现还包括运行了MapR分布的Hadoop集群;它起源于Razorsight Corp.,这是一家Synchronoss在2015年八月收购的分析提供商。Nathan负责Razorsight的部署工作,他说Spark最初是在几个主要批处理应用程序上作为MapReduce的更快替代品来使用的。这包括ETL数据集成工作,以及给Synchronoss分析团队提供该公司从其客户端收集的设备,网络和操作数据认知的数据分析项目。
但Synchronoss正在寻求对Spark架构的使用进行扩展以用于更加实时的处理领域。到今年年底为止,它计划为诸如追踪移动设备使用的应用程序添加Spark Streaming,这样营销产品就能在事件发生点发送给客户,Nathan说。接下来他预计在2017年转向MLlib,这是Spark的集群学习库,用于自动分析应用程序——例如,检测公司网络中的欺诈活动和对移动设备安全政策的违反。
除了用Python和Java来编写应用程序代码,Synchronoss还可以通过该软件的Spark SQL模块来进行SQL编程。在其周围的核心引擎和组件中,对于企业的大数据处理需求来说,Spark平台是一种一站式服务,Nathan说。“如果我们不使用Spark,那么我们就必须对所有这些东西使用一项不同的技术。”