今年4月的Spark技术峰会上我做了《SuperVessel:基于OpenStack, Docker和Spark打造大数据公有云》的技术分享:
基于OpenStack和Docker打造Spark大数据服务
新浪微盘下载链接
我是IBM中国研究院的高级研究员,大数据云方向的技术负责人,我的微博是@冠诚。我们围绕Spark主要做两方面的事情:
(1) 在IBM研究院的SuperVessel公有云( http://www.ptopenlab.com )上开发和运维Spark as a Service大数据服务。
(2) 在OpenPOWER架构的服务器上做Spark的性能分析与优化。
Spark作为新一代的大数据处理引擎主要带来了两方面的好处:
(1)相比于MapReduce在性能上得到了很大提升;
(2)在一个统一的平台上将批处理,SQL,流计算,图计算,机器学习算法等多种范式集中在一起,使得混合计算变得更加的容易。
大规模机器学习,图计算,SQL等类型数据分析业务是非常适合使用Spark的。当然,在企业的技术选型过程中,并不是说因为Spark很火就一定要使用它。例如还有很多公司在用Impala做数据分析,一些公司在用Storm和Samaza做流计算,具体的技术选型应该根据自己的业务场景,人员技能等多方面因素来做综合考量。
4.企业在应用 Spark 技术时,需要做哪些改变吗?企业如果想快速应用 Spark 应该如何去做?
企业想要拥抱Spark技术,首先需要技术人员改变。是否有给力的Spark人才会是企业能否成功应用Spark最重要的因素。多参与Spark社区的讨论,参加Spark Meetup,给upstream贡献代码都是很好的切入方式。如果个人开发者想快速上手Spark,可以考虑使用SuperVessel免费的Spark公有云服务,它能快速创建一个Spark集群供大家使用。
我们在对Spark进行性能调优时遇到很多问题。例如JVM GC的性能瓶颈,序列化反序列化的开销,多进程好还是多线程好等等。在遇到这些问题的时候,最好的方法是做好Profiling,准确的将性能瓶颈找到,再去调整相关的参数去优化这些性能瓶颈。另一方面,我们发现如果将Spark部署在云环境里(例如OpenStack管理的Docker Container)时,它的性能特征和在物理机上部署又会有很大的不同,目前我们还在继续这方面的工作,希望以后能有机会跟大家继续分享。
在与OpenStack这样的云操作系统的集成上Spark还是有很多工作可以做的。例如与Docker Container更好的集成,对Swift对象存储的性能优化等等。
我将分享的话题是“基于OpenStack, Docker和Spark打造SuperVessel大数据公有云”:
随着Spark在2014年的蓬勃发展,Spark as a Service大数据服务正成为OpenStack生态系统中的新热点。另一方面,Docker Container因为在提升云的资源利用率和生产效率方面的优势而备受瞩目。在IBM中国研究院为高校和技术爱好者打造的SuperVessel公有云(www.ptopenlab.com)中,我们使用OpenStack, Docker和Spark三项开源技术,在OpenPOWER服务器上打造了一个大数据公有云服务。本次演讲我们会向大家介绍如何一步一步使用Spark, Docker和OpenStack打造一个大数据公有云,并分享我们在开发过程中遇到的问题和经验教训。
对如何构造一个大数据云感兴趣的同学应该会对这个话题感兴趣。对于开发SuperVessel的Spark as a Service服务过程中我们做的技术选型,架构设计,以及解决的问题应该能对大家有所帮助。
Spark与云的结合将会是未来一个非常热的方向,希望有更多关注这个方向的同学与我交流,谢谢大家。