自5月30日阿帕奇软件基金会宣布发布开源平台Spark 1.0以来,Spark就屡登头条,备受数据专家关注。但是,Spark的企业应用时代真的来了吗?
从近期举办的美国Spark峰会上来看,大家对Spark技术还是充满信心的。Spark通常被认为是实时处理环境,应用于hadoop、 NoSQL数据库、AWS和关系型数据库上,可作为应用程序接口API来使用,程序员通过共同的程序处理数据。Spark的功能包括SQL查询引擎、机器学习算法、图处理引擎和流数据处理引擎。
很多Hadoop供应商都将Spark加入到了自己的Hadoop发行版里,比如Hortonworks、Cloudera、IBM、MapR 和Pivotal。Hortonworks的技术咨询师、前创始人兼CTO Eric Baldeschwieler认为,Spark很可能成为大数据通用的技术。
很多支持者认为Spark是Hadoop的必要补充,也承担起一部分文件系统的功能。Spark倡导者认为,Spark的价值在于,没有任何一个平台能像Spark一样将这些各自独立的技术和功能综合集成起来。
另一家Hadoop发行商MapR的CTO,同时也是联合创始人M.C. Srivas则对Spark与Hadoop的结合充满信心。他认为Hadoop常用的MapReduce语言很难入门,对技术人员不够友好,Spark恰能替换MapReduce语言。另外,Spark既然是内存数据处理系统,那么Hadoop的实时分析也就成为了可能。
Srivas说道:“Spark和Hadoop简直是绝配,应用程序接口(API)堪称完美。另外值得一提的就是内存处理。MapReduce 必须运行在传统硬盘上,但Spark可以再内存中运行。内存处理赋予了Hadoop实时分析的能力,这一切都要归功于Spark。”
、以往,人们对Spark的关注点主要集中在数据集成和提供简单的唯一界面上。但对于数据科学家来说,数据管理并不是他们的兴趣所在。因此,Spark逐渐增加了更多数据分析的功能。
Spark技术供应商Databricks的软件工程师Patrick Wendell表示,Spark 1.0版本的机器学习库(MLlib)中包含15个预定义的机器学习工具包,1.1版本中有望达到30个。开发人员正在为R语言开发界面,可能会在1.3 版本中和大家见面。虽然Spark作为数据管理工具已经名声在外,但Wendell认为,Spark最核心的是这些数据分析代码库的发展。
Wendell说道:“代码库是Spark的未来。它是开源社区的兴趣所在,也是创新的源泉。我们把宝都压在代码库上了。”
十全九美 美中不足
这是否意味着企业应该着手计划自己的Spark部署了?企业还是要三思而后行。虽然Spark有种种优势,比如单独API交互、流数据和批量数据的处理能力、能够同时运行高级分析和简单报表等,但Spark仍然有缺陷。
Srivas认为内存计算面临稳定性问题。Spark已经宣布通过Resilient Distributed Dataset解决这个问题,Resilient Distributed Dataset可以通过并行数据处理提供自动防故障装置。
Baldeschwieler认为,Spark需要增加数据存储的数量,提供更强大的代码分享路径,提高最佳实践分享的速度,开发代码的可移植层。这样程序员就可以一次写完一个任务以后,可以在多个数据存储中执行,最后产生R语言界面。
Baldeschwieler总结道:“虽然Spark目前还有诸多缺陷,但我仍然认为,Apache Spark是大数据时代最让人兴奋的技术。”