【CSDN现场报道】2015年12月10-12日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所、北京中科天玑科技有限公司与CSDN共同协办,以“数据安全、深度分析、行业应用”为主题的 2015中国大数据技术大会 (Big Data Technology Conference 2015,BDTC 2015)在北京新云南皇冠假日酒店盛大开幕。
Databricks公司联合创始人、Spark首席架构师辛湜带来主题为《Spark发展 :回顾2015,展望2016》的演讲,他介绍了Spark的目标是“Unified engine across data workloads and platforms”。在谈到Spark在2015年最大的改变时,他感觉应该是增加了DataFrames API。对于Spark的生态圈,他表示主要侧重三个不同的方向,一个是上层的应用,二是下层的环境,还有最重要的是连接到的数据源。
Databricks公司联合创始人、Spark首席架构师 辛湜
以下为演讲实录
辛湜:谢谢刚刚的介绍,这是我过去两年第一次用中文演讲,有一些东西讲的词语翻译不太对,还请见谅,今天给大家讲一下Spark,回顾一下2015年的发展跟2016年将发生什么事情,Spark的生态系统发展非常快,太大了,没有办法一一把所有的东西囊括在里面,有一些您感兴趣的话没有照顾到的话,可以私下聊天。。
在国外好很多,如果在国内有时候跟别人聊天,别人经常问我,Databricks公司是做什么的,这里简单介绍一下Databricks,Databricks大概在2013年成立的,是由Spark团队原班人马成立的我们的营业模式是提供在云端基于Spark构建的大数据平台,还有很多其他的事情,包括培训、给其他国外很多公司提供最高层的技术支持,他们的工程师解决不了问题会来找解决问题的方法。
开始讲这个事情之前,我想让大家举手,如果没有听过Spark的请举手,在我演讲之前,基本上没有。你自己用过Spark的请举手,跟我期望值差不多,大家都知道,可能在线上应用的国内有一大部分可能还不是那么多。我们对Spark未来的发展很简单的想法,我们希望Spark,一层是Spark之下,一层是Spark之上, Spark有点类似于瑞士军刀,如果你需要的话可以随时戴在身上解决大多数的问题, 这是我在2015年硅谷一个会议上讲的,当时看到一些Spark超大型的应用,这里大家会发现有很多中国公司,包括腾讯和阿里巴巴,据我所知很多在Spark的应用在国内发展非常快,甚至比国外的互联网公司发展的还要快。腾讯有单集群超过八千台。
2015年是Spark飞速发展的一年,总结下来大概有三点:第一点是Spark成为了现在大数据领域最火的开源软件,“火”有很多种不同定义的方法,可以叫很多不同的数据发现Spark排在第一,我个人比较喜欢衡量的标准是对项目参与的贡献者大概有多少,这个总不会有假的,其他东西都可以吹,如果给这个项目贡献代码可以说明公司比较在乎这个项目,Spark在贡献者方面已经成为大数据领域的第一,也是阿帕奇软件基金会项目的第一名,我们发现如果把“大”字从“大数据”剔掉只说数据的话Spark也是在开源软件里面第一,我们还加入了一个新的Spark语言接口来满足更多的数据科学家,2015年Spark在商业知识上也得到了很大的发展。
今年夏天可能很多人都听说了IBM开始加入到Spark阵营里头,IBM加入方式比较特别,他们成立的Spark中心,IBM说Spark是未来十年最重要的开源软件。但是我个人觉得这个其实都没有接下来的那一项有意思,刚刚大家举手的如果没有听过Spark,你觉得你的老婆或者孩子没有听过Spark你可以举一下手。10月份的时候,9月底的时候在美国财富杂志有一个记者叫Derrick Harris,我在想怎么样翻译成中文,这个人在美国非常火昨天晚上我问了一下我的同学他跟我翻译了一下, Spark是大数据中的最火的明星Angelababy。
接下来讲一下Spark的发展,我从用户的调研解释一下Spark2015年的发展,今年夏天的时候我们做的一个用户调研,现在都全部出来的,在那之前我们去年2014年的时候,我们在美国第二次做了Spark的峰会,在旧金山,当时有1100人参加,15年我们在全球做了三个这样的峰会,有两个在美国,还有一个在欧洲,未来期待到中国来,总共参会人数已经接近四千人,短短一年有四倍的增长。另外一个是全世界各地的用户交流小组,在2014年末的时候统计了一下大概全世界有12000交流小组成员,到2015年12月份的时候已经有了5万人,这也是乘四的增长。回到刚刚说的对项目贡献者里头2014年12月份我统计了一下Spark一共有500位开源斗士为Spark贡献代码,12月1号的正好是一千,一年当中翻了一倍。这是跟大家解释一下刚刚说到用户讨论组的地图,从全世界、全球这些每一个红点都是一个用户讨论小组,这是在2014年12月份取得的,2015年可以发现很明显,在全球各地都多了很多的小组,特别是美国的东部、欧洲还有在亚洲陆陆续续起来了,如果不是从北京来的话,我们欢迎你回到自己的城市之后开一个Spark用户讨论小组,跟大家分享Spark的经验。
我一开始说到Spark的生态圈发展到现在其实已经非常大,我没有一一囊括不同的东西,我尝试在几个月前做一组生态圈的筹划,发现加的东西太多, 这是一个简化图,Spark在中间,侧重三个不同的东西,一个是上层的应用,一个是下层的环境,还有一个是最重要的是连接到数据源。 现在基本上可以想象出来的开源的数据源,甚至包括闭源的数据源都在网上下载,现在可以在不同的环境里头运行Spark。我们今年年中根据我们的调研,我们自己所知道的,现在大概有几千个Spark线上应用案例,中国的百度、阿里巴巴、腾讯、京东,在国外来说其实是可以想象到很多企业软件提供商基本上都会有Spark支持,有很多也是我们的合作伙伴,国内也有很多提供Spark支持的商家。现在说到2015 Spark用户调研,我们在夏天的时候大概收到了1400份问卷恢复,代表了840个不同的公司、组织机构,分析一下这个结果。
这个结果我觉得主要有三个不同的趋势,我这次回来的感觉,其实中国在消费者市场上很多时候发展比美国硅谷都要好很多,但是在企业级软件服务上可能还是稍微有些滞后, 三个趋势:第一是更多样化的应用,第二是更多样化的环境,第三是更多样化的用户, 基本上可以说是Spark的多样性发展。
第一是多样化的应用, 这是我们这个统计在不同的行业应用的结果,因为我们发出去是技术人员和技术方向上的人,所以这里头在科技公司软件构公司占到30%的比重,还有金融业、零售业、广告行业,还有医疗行业,还有7%是并没有标出是什么行业。我们看到有两种分类,第一种是比较传统的数据应用,包括DR和数据仓库,第二种是比较新的大数据的应用,包括了日志分析、做的安全检测之类的不同应用,他们直接服务于应用的用户,当用户在UI里面随便点一下直接向Spark索取答案,比较像传统的数据库做的一些应用,现在也有开始用Spark来做。另外一个比较关心的是因为Spark上面有不同的模块,你不熟悉的话,最主要可能是Spark SQL,我们一般现在综合起来,我们发现SQL用的最多,这个不管国内外都是一样的,DataFrames是今年推出的新的API,每个模块都在60%上下左右,有些稍微多一些,有些稍微少一些。
第二个趋势更多样化的运行环境, 在Spark里头我们发现跟Hadoop有很大的不同,虽然最开始Spark为了跟Hadoop集成设计的,但是慢慢随着Spark对其他数据源的支持越来越好,越来越多的用户通过Spark连接到非Hadoop的数据源里头。这个调查结果的变化其实很大程度展现了第二个趋势,在2014年同样的调查里头,我们当时发现有61%的用户是非常强的Hadoop依赖性的,Spark基本上是跟Hadoop多用户把Spark直接连到(英语)上用,在未来我觉得这个Hadoop这个比例会慢慢下降,然后其他会慢慢提升。另外一个我觉得从Hadoop的下降比例的另外一个方式,在存储之外就是资源调度,另外一个也很有意思的数据,因为我们自己是云厂家,我们提供的是云服务,也有很多人问我们你们觉得云的市场够大吗,我相信在国内有很多人会问这个问题,究竟云可不可以作为企业软件市场的主打方向。我们这次发现有51%800多家企业有超过一半都有在公有云上的部署,我们还专门划分出来公有云这一块,因为私有云比较难定义,私有云跟传统的设置差别并不大。
第三个趋势是用户的多样性 ,在2014年的时候我们这个调研结果是Scala语言有84%的用户,38%用java,python差不多,我觉得其实有几个原因,第一个其实是并不是大家喜欢的编程语言改变了,是因为人群改变了,Spark跟Hadoop是一起用的,Hadoop的团队都是做数据基础设施的,这些人大多数都会用java和Spark,我们之后接触到更多的数据科学家,他们更注重的是分析,对于这些人来说python和R。
三个增长最快的不同的模块,一个是Windows用户的增长应用方面来说使Spark走入大众化的成长,第二个是流数据的处理,有56%的增长,这个不是绝对比例,所以如果要写发微博,不是指2015年有56%的增长,而是相对比例。尤其在国外做完Spark的演讲之后有人问Spark发展这么好,Spark的团队没有什么可以做的吧,其实我们团队一直在扩大,也越来越忙,为什么呢,我觉得其实我们走的路还很远,如果实在看现在我们的代码发展程度的话,你会发现其实Spark的开发速度越来越快,已经有超过一万个不同的case,发展是越来越快,
2016年个人感觉有几个比较重要的方向,第一个是Spark2.0,2016年会发布,2.0跟1.0最主要的区别并不是带来什么样的新功能,1.0有一些API的功能不是特别好的话,2.0有机会修订他们,大版本的改动是API兼容性的问题。如果看一下2015年最大的发展,Spark来说是加入新Dataset API,从系统架构上来说把更多的Spark应用程序转向关键性数据库的优化器,带来两个大的变化,一个是API方面的改变,一个是统执行层面的改变,API方面的改变最大的改动是以前学Spark第一个想学的是有一定函数式编程了解,对一些科学家并不是科班的数据出身,马上给他们讲函数编程可能是望而却步,我们做了改进,加入很多新的更适合分布式数据处理的一些功能,这个具体不讲了。
Spark2.0或者之后的项目里面会有很多开发的改变,我个人觉得比较有意思的有三点:
第一个是新的API叫Dataset,可以达到更高效的执行和优化,让用户更容易用 ,但是有一个问题对于强烈性的语言,比如说java和python客户变成了一个动态的类型,很多人做大型软件开发的时候会发现可能更强烈性的编程,这个强烈性的编程语言是不同团队合作相当于有更强的合同寓意,datasetIPA就是在这个之上加了一个强烈性。这个时候是一个动态类型,如果你想在很多时候,你可能知道这个数据究竟有什么类型,你想通过编译器帮助你的方法,可以调用IS函数给他一个类型,这样编译器知道这个叫DS的变量是detaset json,之后可以用到常用的方法函数,但是编译编译器可以给你更好的出错提示。
第二个我个人觉得会比较激动人心的改动是Streaming Dataframes, 在流数据这一块还是基于老的架构,利用RDD为主的流处理,我们希望在2016年上半年可以推出Streaming Dataframes,提供一个非常易用Dataframes的API,可以利用很多后端的优化,现在全世界大多数Spark贡献代码的工程师都在提供代码。还有一些比较重要的功能是如果处理很多物联网的数据,包括感应器的数据,你可能发现很多数据莫名其妙延迟了,可能这个时候到,有的时候一天一个小时,快的时候十秒就可以到。
最后一个稍微前瞻一点,不会在接下来6个月发生的,就是对新硬件的支持。 今年年初的时候微软云服务宣布了有一个接近500G内存的机器,今年年末的时候亚马逊宣布了明年他们会推出X1的虚拟机,有2个TB的内存,利用超大内存其实不是那么简单,因为很多现有的软件架构没有办法跑那么大,另外一个比较新的应用,这是新种类的硬件,不是内存加大。我们现在思考的一点就是Spark新的API,有一点并没有很强对底层实现的依赖性,他们都转成了DataFrames,未来可以根据中间的这一层来生成不同的代码,不管你是有两个T的内存,还是有很多的GPU,还有有很多的存储媒介。
最后跟大家说一下如果你都听过Spark了,如果你想自己或者让你的团队学习一下,其实,我们有好几门在线公开课,今年就跟伯克利学校合作提供了一个免费公开课,明年我们会在同时推出四门不同的课,还有进阶版本,到时候也欢迎直接上新版本。我演讲到此结束,谢谢大家。
更多精彩内容,请关注直播专题 2015中国大数据技术大会(BDTC) ,新浪微博 @CSDN云计算 ,订阅 CSDN大数据 微信号。