转载

Dropbox邵铮:看Hadoop Summit 2015与Spark summit 2015

【编者按】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,建议开始考虑升级。

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

正文到此结束
Loading...