今年4月份,CSDN曾采访过来自UC Berkeley计算机系AMPLab的博士生辛湜(英文名Reynold Xin),他是Shark的作者,同时也是Spark的核心成员(@hashjoin),如今他又多了一个新的身份——Databricks的联合创始人。Databricks可谓阵容豪华,包括了UC Berkeley计算机教授、AMPLab联合创始人Ion Stoica,UC Berkeley计算机科学教授Scott Shenker(Scott计算机历史上论文被引用次数最高的人,同时也是知名SDN公司Nicira的联合创始人及前CEO),Spark原作者、MIT教授Matei Zaharia。近期,来自Andreessen Horowitz的1400万美元投资,以及Cloudera在2013 Strata+Hadoop大会抛出的重磅消息,使Databricks再次引起了业界关注。CSDN再次采访了辛湜,向他了解了关于Spark以及Databricks的最新消息。
以下为专访整理:
CSDN:目前Spark的发展状况是怎么样的?未来的研究方向是什么?
辛湜:UC Berkeley AMPLab今年把Spark贡献给了ASF(Apache Software Foundation)开源社区,Spark已经成为一个ASF项目,正式名字是Apache Spark。很多公司和机构开始利用Spark分析和提取数据,编写机器学习和图的应用等等。在中国我知道淘宝、腾讯、优酷、大众点评等互联网公司都有成功的案例。全球各地已经有接近100个开源贡献者,包括了很多身在中国的工程师。除了Hadoop MapReduce之外,Spark是用户数和贡献人数最多的大数据开源系统。Spark可能会在不久的将来超越MapReduce。
2012年10月-2013年9月Spark贡献者的增长状况
作为一个ASF的项目,Spark的发展很大程度上是开源社区共同决定的。UC Berkeley和Databricks的团队希望未来Spark的发展重点在以下几个方面:
- Spark Streaming:大大提高Spark流处理的能力和稳定性,使用户可以用同一套代码进行大数据流处理和批量处理。
- MLLib:Spark 0.8里面增加的一个高质量的机器学习库。我们希望添加更多的算法到这个库里面,使得Spark成为分布式机器学习应用的标准。
- GraphX:现在有越来越多的社交网络分析以及机器学习算法可以利用图算法来实现,GraphX是在Spark之上实现的一个图框架,可以让用户凭借短短几行代码简洁地实现多种图算法。
- 易用性:简化安装、设置以及使用。完善Python/Java的API。我们也在考虑提供其他语言的API,包括R等等。
- 稳定性:和用户以及开源社区合作,提高稳定性,部署更多的应用在Spark上。
- 性能:Spark虽然在这方面上起点比较高,但是还有很大的提升空间。
CSDN:能否介绍下Databricks的情况,您在Databricks主要的工作是什么?创业会对您的研究工作产生什么影响?
辛湜:今年年中,我和几个AMPLab的同僚(包括Ion Stoica教授和Spark的原作者Matei Zaharia)共同创立了Databricks公司。Databricks的目标是从Spark开始,构建一系列更强大、更简单的大数据分析处理工具和平台。九月份的时候,我们正式宣布从硅谷风投Andreessen Horowitz获得A轮融资1400万美元,利用这些资金吸引人才,提高大数据生态系统发展的步伐。
因为是创业公司的关系,我现在做的事情很多。一天中可能一部分时间在负责招聘,一部分时间探讨公司决策,一部分时间在给公司员工买零食,然后剩下的大量时间用来写代码和code review。长远来看,我希望把主要的时间放在产品研发上。
Databricks团队成员
后排从左向右依次为:Andy(Spark Summit的组织者)、Arsalan(曾在麦肯锡主管大数据以及IT策略管理咨询,现已加入Databricks)、Matei Zaharia、Ion Stoica、Scott Shenker、Mike Franklin(AMPLab director)
前排从左向右依次为:Ali( 世界知名的分布式系统、分布式算法以及调度系统专家)、辛湜、Patrick(Sparrow的作者之一,也是Spark其中一个最重要的贡献者)、Aaron(Databricks工程师)
CSDN:在刚结束的2013 Strata+Hadoop大会上,Cloudera宣布联合Databricks提供Spark企业级服务,这对于Databricks和Spark都有何重大意义?
辛湜:尽管Spark现在有很多互联网以及科技公司的成功案例,得到了技术人员和开源社区的肯定,但是这个项目最终的成功需要大量企业级的应用。这个合作关系有三重意义:第一,它验证了整个大数据生态圈对Spark发展的认同,越来越多的机构认识到Spark可以帮助他们更高效、更快地从大数据中获取有价值的信息以辅助商业决策。第二,这个合作关系为用户提供企业级的支持奠定了基础。第三,Spark从项目初始阶段就是以尽最大程度兼容Hadoop而设计的(可以直接读取Hadoop文件以及Hadoop兼容的储存系统),两个公司的合作可以确保以后Spark成为Hadoop生态系统中最重要的框架之一,为Spark和Hadoop用户带来更大的价值。
CSDN:自YARN之后,Hadoop可以运行更多的处理集群,对比其它的数据处理框架,Spark的优势会体现在什么地方?杀手级应用场景是什么?
辛湜:短期来看,最大的应用是进行复杂的数据分析,比如说利用机器学习或者图算法来实现推荐系统等等。长远来看,Spark的强项是可以用同一个框架来满足很多不同的应用场景,包括ETL、SQL、机器学习、图分析等等,更好的把这些应用场景集成起来。
打个比方,在2007年iPhone出来之前,很多人会携带手机打电话和发短信,数码相机用于拍照,mp3/iPod来播放音乐,还有GPS导航装置。2007年之后,随着iPhone和其他智能手机的发展,以上大多数功能都被智能手机取代了。虽然智能手机在每个应用上的性能不一定能赶超专业设备,但是因为其简单小巧,大多数人更倾向于直接使用智能手机。除此之外,将这些功能集成到一部小巧的智能手机上也诞生了新的应用,比如说用户可以拍一张照片,直接利用手机内置的GPS给照片标上地理位置,上传到微博上和朋友分享,这些应用是单一的专业设备无法满足的。我们希望Spark会成为大数据时代的智能手机。
CSDN:2013年12月2日,将要在旧金山举办2013 Spark峰会,能否介绍下这次大会的情况?我注意到一个很有意思的地方,Cloudera和Hortonworks都是本次大会的赞助商,Hortonworks也会有一些对Spark的支持吗?
辛湜:这次Spark峰会是Spark进入ASF之后的第一个社区活动,有十八个公司的代表会在大会中展示他们Spark应用的案例。其他信息暂时不方便透露(CSDN表示很期待在本次Spark峰会上看到Hortonworks的重磅消息)。
CSDN:您做过的Shark项目和Facebook刚刚开源的Presto都属于SQL on Hadoop的范畴,能否从你的经验分析一下当前SQL on Hadoop的成熟度?
辛湜:我个人觉得SQL on Hadoop和传统数据仓库相比最大的特点是它的灵活性。这个包括了数据储存格式的灵活性,schema的灵活性,分析的灵活性(并不是只能用SQL一种分析方法)等等。
传统数据仓库发展了三四十年,SQL on Hadoop的成熟程度(功能、性能、生态圈、服务链等)相比之下还逊色不少。在头两三年,企业主要是利用Hadoop作为廉价的存储和ETL工具,但是随着Hadoop生态圈的发展,SQL on Hadoop市场会逐渐蚕食数据仓库市场。
CSDN:2013年的SOSP中,来自UC Berkeley的大数据分析调度器Sparrow和流计算Discretized Streams引起了大家的关注,能否介绍下这两个项目?
辛湜:在传统的大数据批量处理(batch computing)框架上,单个任务运行时间比较长,调度器的压力其实很小(比如MapReduce上甚至是利用heart beat来进行调度)。所以传统的调度器都是集成在一个节点上。而以Spark为代表的新一代系统单个任务时间可以很短(短到几个毫秒),对调度器的压力很大。如果集群规模大的话,调度器每秒钟可能要处理几十万个任务。Sparrow提出了一种完全分布式的集群调度器,在接近最佳调度的情况下,理论上可以调度的任务数无上限(实际测试中论文证明了Sparrow每秒可以轻松调度上百万个任务)。除了可以调度更多的任务之外,一个分布式的调度器也提高了调度系统的容错能力,可以容纳任何节点的错误。
Discretized Streams就是Spark Streaming,利用Spark来做流处理。它的原理是把一个数据流切分成很多个小的batch(比如说每秒钟一个batch),然后利用Spark任务调度很快的特点,非常快地用批量处理的模式来处理这些batch。其最大的好处是你可以直接编写Spark的代码,然后把同一份代码应用到批量处理和流处理上。从此流处理和批量处理可以共享一套系统,大大降低数据分析处理的代价和提高维护能力。
CSDN:您所在的AMPLab有很多优秀的项目,包括Spark、Shark、Tachyon、PIQL、MLBase、Akaros、Sparrow等,您认为是什么原因使得这里诞生了这么多优秀的项目?对于国内各高校的实验室您有什么建议?
辛湜:我觉得主要有三个因素:第一是历史积淀,将前沿的学术研究项目开源这个传统可以追朔到七十年代的UC Berkeley。从Berkeley Unix BSD开始,经历了Postgres、Berkeley DB和TinyOS等项目,AMPLab在这方面继承了这个传统。
第二是和工业界的合作,因为地处硅谷附近,AMPLab和业界有很紧密的合作。比如说每年AMPLab都会举办两次retreat,从业界邀请几十位知名的研究人员和工程师来和实验室成员探讨研究进展以及工业界遇到的问题。
第三是对学生的考核标准。传统上高校研究人员是否成功以发表论文及其被引用次数来衡量,而开源系统开发周期比较长,在短期内可能会牺牲论文的发表,所以很多时候编写开源系统更需要沉得住气,不能太过在意短期的成果。
这个发展过程本身需要时间的积淀。国内有很多很优秀的人才,发展很快。几年前在数据库和系统领域的顶级会议上还很少见到国内的论文,但是今天越来越多。我相信不久的将来也会有越来越多的国内高校参与和带领开源项目的建设。