一、Spark的发展
Spark是伯克利大学2009年开始研发的一个项目,于2010年开源。自从2013年Spark进入Apache的孵化器项目后,发生了翻天覆地的变化。2014年初,Spark成为了Apache排名第三的顶级项目,其发展势头更加迅猛。Spark通常一个多月就会发布一个小版本,两三个月左右会发布一个大版本,目前最新版本为1.5.2。2014年,Hadoop的四大商业机构均宣称全力支持Spark,今后将全面接收基于Spark编写的数据挖掘与分析算法,多家世界顶级的数据企业例如Google,Facebook等现已纷纷转向Spark框架。目前参与贡献的公司也超过50家;代码库也由原来的63000行增加到175000行。
近两年,Spark在中国的发展达到了一个前所未有的状态和高度。其中阿里巴巴的搜索和广告业务,最初使用Mahout和MapReduce来解决复杂的机器学习问题,但是在效率和代码维护方面并不理想,现已转向Spark框架。淘宝技术团队使用Spark实现了多次迭代的机器学习算法和一些高计算复杂度的算法,并将其运用在推荐系统上;同时还利用Spark中的一系列组件解决了基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等许多生产问题。此外,腾讯也是最早使用Spark的应用之一,借助Spark快速迭代的优势,腾讯提出了大数据精准推荐,并采用“数据+算法+系统”这套技术方案支持每天上百亿的请求量。
二、Spark四大特性
特性一:快速
相同的实验环境与数据下,在内存中运行相同的程序,Spark比MapReduce快约100倍;在磁盘中运行相同的程序,Spark要MapReduce快约10倍。例如图2所示,Spark和MapReduce进行逻辑回归运算后的实验数据。