微信号:ChinaScala

介绍:Scala & Spark & Docker 坚持原创!

杭州第二次Spark meetup topic解析

2014-12-28 22:53 陈 超

杭州第二次Spark meetup今天下午在蘑菇街顺利举行,我们准备了三个topic

1:Spark Shuffle introduction

2:基于GraphX的社区发现

3:OpenStack和Docker在蘑菇街的实现


接下来我简单介绍下各个分享的要点及我的一些理解与看法


Spark Shuffle introduction

蘑菇街天火带来了shuffle的分享,众所周知,shuffle是性能杀手,原因有很多,譬如数据排序是一个开销很大的工作,而序列化反序列化与数据压缩的带来的影响也不可忽视,最后就是磁盘IO和网络带来的开销等等。所以Spark在shuffle方面也做了很多工作,譬如1.0开始提供了可拔插的shuffle框架,1.1基于此框架提供了基于sort的shuffle实现,1.2将sort-based shuffle作为默认实现,以后Spark还会去做一些external shuffle service等。早期shuffle实现的很不好,每个map task都需要为每个reduce task生成一个文件,假设M为map task数目,R为reduce task数目,C为core的数目,导致生成的总文件是 M * R, 而同时打开的文件数目为C * R, 后期加入了Consolidate Shuffle,即每个core只为每个reduce task生成一个文件,总文件数为C * R, 同时打开的文件数仍为C * R,所以Memory的开销为C * R + 每个打开file的buffer,虽然Spark1.1起将每个buffer从原先的100k降为32k,但是开销仍然是巨大的。而sort-based每个map task只生成一个shuffle文件和一个index文件,在shuffle数据量特别大的情况下,sort-based shuffle能大大减少内存的使用。最后也展望了下后续可能的发展,譬如是否能解开stage间的barrier等。

PPT地址:http://pan.baidu.com/s/1mgHXXry


基于GraphX的社区发现

淘宝技术部的数据挖掘与计算团队在复杂网络挖掘方面非常有心得,特别是结合GraphX做了很多工作。今天刀剑同学介绍的就是基于FastUnfolding算法的社区发现,说白了就是为每个社区打上标签。算法分四步,还是比较直观的,1、初始化,将每个节点划分在不同的社区中 2 、对每个节点,计算modularity增益 3、执行Unfolding,合并节点 4 、构造新图。 在这过程中,将算法并行化执行遇到了一些挑战,串行化执行时只需逐个选择节点改变社区,而并行化实现需要同时改变所有节点的社区。 在并行化过程中,使用了aggregateMessages替代MapReduceTriplets,测试表明,速度有30%的提升,另外两个问题是Modularity中间计算量过大和消息滞后,最后以优化模型来解决中间结果过大的问题,以<id,community>构图再求解连通域来解决消息滞后问题。最后展示了一些效果。

PPT地址:http://pan.baidu.com/s/1AkSLg


OpenStack和Docker再蘑菇街的实践分享

我首先解释下我为什么要在Spark Meetup中加入一些和Spark表面上看起来不相关的东西,其实大家仔细想下,现在什么最重要?生态!so.....懂了吧 : )

言归正传,郭嘉首先提到想做私有云,提高资源利用率,元管理平台,实时的架构,部署的效率,业务的弹性,可扩展性等等,于是就想到了使用openstack,由于对轻量级虚拟化的需求,也用到了docker,所以就造就了openstack+docker的组合,目前蘑菇街是使用openstack来管理docker的,在docker层面做了cpu隔离,内存隔离与IO隔离,并且自己做了一套监控,最后分享了踩过的几个坑,不过郭嘉同时也透露,目前还处于起步阶段,还有许多工作需要做。

PPT地址: http://pan.baidu.com/s/1pJt5ylH


总的来说,本次meetup大家的热情很高,参会人员的质量也非常好,我想我确实是在做一件有意义的事情,最后多谢各位小伙伴的帮忙 : ) 我们下次meetup不见不散,地点暂定在浙江大学玉泉校区,时间待定!



关于封面图:虽说没看过这个剧,但今天据说暂时停播了,哼!他们不让播,我播! 就酱紫!

 
scala 更多文章 大数据五问五答 by CrazyJvm Spark 1.4 新特性概述 Spark社区的圣诞礼物 : Spark Package Spark1.2新特性概述
猜您喜欢 编程的三个阶段 【干货】你真的了解百度大数据引擎?? TW洞见 | 熊节:用精益思想塑造创新型组织 App Store 审核新指南下 ,三招让你的iOS应用过审无忧 Python版冒泡法排序算法