2015-07-01 10:23:00
来 源
中存储网
Spark
Dropbox研发经理邵铮刚刚参加了HadoopSummit2015和SparkSummit2015。他从会议规模、趋势、关注的技术等方面对这两场技术届有名的会议进行了深入比较,并提出他所关注的技术重点和学习建议。

Dropbox研发经理邵铮,是我们2014中国大数据技术大会的程序主席。近期美国有两场重要的技术会议。Hadoop Summit 2015 和 Spark Summit 2015,中国技术圈都有组团参加。我们在7A程序员电子刊中都有相应的观察稿件。但同时参加两场会议的,知之甚少。昨天讨论Spark峰会和Docker峰会的对比时,还在思考。看来有共同问题的朋友还有很多,刚看到知乎上的一个帖子:

怎么看Hadoop Summit 2015 and Spark Summit 2015?
首先,IBM 要在spark 上面拼了,据说要全公司参与到spark里面,因为spark还在初创阶段,所以早参入必然好处多。其他几个大公司比如google,ms是怎么看的?
Schedule 里有不少有意思的topic,大家觉得那些比较有意思的?
因为hadoop summit 上周也在san jose 开了,所以合并为一个问题吧。
Dropbox研发经理邵铮的观点非常值得品味。

我参加了今年的这两个大会。我来说一说我个人的感受吧。

首先,IBM(如楼主所说的)宣称在Spark上拼了,只是因为IBM在Big Data领域的发展太慢(相对互联网企业而言),所以想乘上Spark这班快车,赶超过去。这到底对IBM公司有多大帮助,我不是非常的乐观。而其它几家大公司早有类似的技术布局,所以没有必要像IBM宣称的那样孤注一掷。

下面是详细的感受。

会议资料

Hadoop Summit 2015: 日程,录像,PPT
Spark Summit 2015: 日程(含录像与PPT), 完整录像(Track A,Track B,Track C)

会议规模

大数据的社区规模在不断的扩大。今年的两个会议的参会人数都创了新高。Hadoop Summit 2015的参会人数是4000,同比增长30%(2014:3100,2013:2600,2012:2100,2011:1600,2010:1200)。Spark Summit 2015的参会人数是2000,同比增长300%(2014:500)。可以看出,Hadoop Summit的参会人数还在加速增长,但是增长速度远远不及Spark Summit。值得一提的是这两个会议的门票都要上千美金,所以这么多的参会人数很好的反映出了目前大数据的热门程度。另外,两个大会上有很多不同行业的公司现身说法,讲述Hadoop/Spark技术的应用,可以说大数据已经在很多行业落地生根了。

关于为什么Spark的发展速度比Hadoop更快,我认为有以下几点原因:

1. Spark非常容易使用。Spark Notebook,Spark与Java/Scala/Python/R的互操作性都做得非常好。而Hadoop的早期用户和社区的主要贡献者都来自于大公司,服务于资深用户。资深用户更关注功能是否完善、系统是否稳定,而易用性就不是主要的考虑因素。

2. Spark是为交互式使用设计的。这体现在聚焦于规模较小的数据处理应用,因而使用内存来加速变得非常重要。这也体现在剔除很多不必要的开销,例如JVM启动时间、polling/heartbeat interval、用来防止出现Self-DDOS的sleep/wait。而Hadoop社区的决定者很多都是大公司。在那里,超大规模的数据计算是最重要的,而几秒钟的启动时间和等待都是无关紧要的。

3. Spark的Committer非常注重发展外部的代码贡献者。一开始,辅导外部的代码贡献者来提交patch可能比Committer自己写code提交patch更慢,但是辅导外部的代码贡献者是一个很好的投资,可以有长期的回报。显然,这个策略在Spark身上非常奏效。

相对来说,Spark的技术比较新,所以运维稳定性、调试等方面不及Hadoop的相关技术。今年Berkeley AMPLAB就专门在USENIX NSDI 2015上发表了一篇文章 Making Sense of Performance in Data Analytics Frameworks 来讲述如何调试Spark的性能问题。

趋势

1. Hadoop技术进一步的成熟。Hadoop最近的比较大的进步都是在运维稳定性和性能上的,例如HA(High Availablility)for YARN ResourceManager,Rolling Upgrades,Erasure Coding Support inside HDFS 等等。 相对来说,用户可用的新功能较少。

2. Spark在Machine Learning和Data Science/Statistics用户中的普及非常快。Spark Notebook,MLLib,SparkR 是Spark的几个杀手级的产品。SparkSQL中的DataFrame也是一个非常有效的功能,但SparkSQL在Data Warehouse领域(如ETL,BI等)的前景还有待进一步的观察,因为SparkSQL毕竟是后来者。

3. Spark和Hadoop的生态系统在融合。这点可以参见Hadoop & Spark, Perfect Together。Hadoop和Spark各自都有很多子项目。对于一个大数据的高级用户来说,他/她所做的决定一定不是”我到底用Hadoop还是Spark“,而是"我到底用Hadoop的哪些组件和Spark的哪些组件"。所以,对Hadoop和Spark的各个子项目的了解变得非常重要。

我最关注的技术

1. YARN。YARN是Hadoop 2的计算资源管理调度系统,可以说YARN是Hadoop 1和Hadoop 2的最主要的区别。YARN从2010年开始开发,2013年10月发布第一版,到现在已经有5年历史,所以技术也相对成熟了,可以在生产环境中稳定的使用。目前Dropbox的Hadoop机群就在迁移到YARN的过程当中。

感兴趣的同学建议先读一读 Hadoop YARN的Blog。然后重点关注这些新功能:Rolling upgrades,Support for Long-running services (HBase, Storm, Kafka), support for Docker containers。将来YARN会有更多的监测和调试功能(如Timeline server Next Generation),也值得关注。

2. Hive与Stinger。Stinger是2013-2014年Hive上最大的改进, 号称要把Hive的效率提高100倍。 到今年这项技术已经比较成熟,可以在生产环境中比较稳定的使用了。Stinger包含三大方面的改进:ORCFile(优化列存储),Vectorized Execution(向量计算),Tez(非Map-Reduce的DAG执行系统) 。这是Dropbox的Hadoop机群下一步的升级目标。

3. SparkR。 我之前学过一些统计的课程,很喜欢R语言在数据处理方面的优势。SparkR把Spark和R结合在一起,对于学习统计的同学来说,会有非常大的帮助。我猜想以后很多大数据方面的高级应用(风控建模之类的)会使用SparkR。

4. Project Tungsten。Tungsten会给Spark的性能带来非常大的提升。主要的技术点有:使用Off-Heap Storage并去除Java Object的overhead,Cache-aware Computation,与Code Generation。这个项目还在开发的过程中,有兴趣的同学可以参与进去。

建议

1. 初学者与大数据应用爱好者:建议从2014年的 Databricks Cloud Demo 开始,去Databricks Cloud注册用户(点击右上角"Sign Up for Databricks"),做一些练习,掌握大数据处理的基本流程。

2. 大数据底层技术开发者:建议关注Project Tungsten并且参与进去。

3. 大数据高级用户:建议多多关注各大公司使用这些技术的经验总结,例如Letter from the Trenches: An inside look at Hive at Yahoo 。如果还没有在生产环境中使用YARN与Hive Stinger,建议开始考虑升级。

还有一些好的观点,可见原帖。(编辑/郭雪梅)

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。