没有合适的资源?快使用搜索试试~ 我知道了~
首页淘宝实战:SparkGraphX的分布式图计算演进与应用
淘宝实战:SparkGraphX的分布式图计算演进与应用
2 下载量 160 浏览量
更新于2024-08-28
收藏 359KB PDF 举报
"《快刀初试:SparkGraphX在淘宝的实践》这篇文章探讨了阿里巴巴淘宝如何利用Apache Spark的GraphX组件进行分布式图计算。SparkGraphX在0.5版本中以Bagel模块的形式引入,尽管初期较为原始,但随着需求的增长,Spark在0.8版本中独立开发了GraphX分支,以GraphLab为参考,构建了一个专门的图计算模块。在0.9版本,GraphX正式成为Spark的一部分,并在1.0版本开始应用于生产环境。 GraphX的优势在于其良好的性能、丰富的功能和运算符,能够应对大规模数据的图算法处理。作者强调,GraphX的快速发展使其在每次版本迭代中都能带来10%至20%的性能提升,尽管与GraphLab相比仍有一定的性能差距,但由于Spark的整体架构和社区的活跃支持,GraphX具有显著的竞争优势。 文章重点讨论了分布式图计算的核心概念,包括图存储模式。常见的图存储模式有边分割和点分割。边分割通过将顶点数据分散存储,节省空间但可能导致跨机器通信,增加网络负担;而点分割则将边完全存储在一台机器上,虽增加存储成本,但减少了通信需求。选择哪种模式取决于具体的应用场景和性能需求。 文章深入剖析了GraphX在淘宝的实践过程,展示了其在分布式图计算中的应用潜力和优化策略,同时也揭示了SparkGraphX作为一种分布式图计算平台在处理复杂网络和算法时的优势和挑战。"
资源详情
资源推荐
快刀初试:快刀初试:SparkGraphX在淘宝的实践在淘宝的实践
由于Spark GraphX性能良好,又有丰富的功能和运算符,能在海量数据上自如运行复杂的图算法,淘宝尝试将它作为分布式
图计算平台,进行各种算法尝试和生产应用。本文结合GraphX的原理和特点,分享其在淘宝的应用实践。
早在0.5版本,Spark就带了一个小型的Bagel模块,提供了类似Pregel的功能。当然,这个版本还非常原始,性能和功能都比
较弱,属于实验型产品。到0.8版本时,鉴于业界对分布式图计算的需求日益见涨,Spark开始独立一个分支Graphx-Branch,
作为独立的图计算模块,借鉴GraphLab,开始设计开发GraphX。在0.9版本中,这个模块被正式集成到主干,虽然是Alpha版
本,但已可以试用,小面包圈Bagel告别舞台。1.0版本,GraphX正式投入生产使用。
值得注意的是,GraphX目前依然处于快速发展中,从0.8的分支到0.9和1.0,每个版本代码都有不少的改进和重构。根据观
察,在没有改任何代码逻辑和运行环境,只是升级版本、切换接口和重新编译的情况下,每个版本有10%~20%的性能提升。
虽然和GraphLab的性能还有一定差距,但凭借Spark整体上的一体化流水线处理,社区热烈的活跃度及快速改进速
度,GraphX具有强大的竞争力。
分布式图计算分布式图计算
在正式介绍GraphX之前,先看看通用的分布式图计算框架。简单来说,分布式图计算框架的目的,是将对于巨型图的各种操
作包装为简单的接口,让分布式存储、并行计算等复杂问题对上层透明,从而使复杂网络和图算法的工程师,更加聚焦在图相
关的模型设计和使用上,而不用关心底层的分布式细节。为了实现该目的,需要解决两个通用问题:图存储模式和图计算模
式。
图存储模式图存储模式
巨型图的存储总体上有边分割和点分割两种存储方式。2013年,GraphLab2.0将其存储方式由边分割变为点分割,在性能上
取得重大提升,目前基本上被业界广泛接受并使用。
边分割:每个顶点都存储一次,但有的边会被打断分到两台机器上。这样做的好处是节省存储空间;坏处是对图进行基于边的
计算时,对于一条两个顶点被分到不同机器上的边来说,要跨机器通信传输数据,内网通信流量大。
点分割:每条边只存储一次,都只会出现在一台机器上。邻居多的点会被复制到多台机器上,增加了存储开销,同时会引发数
据同步问题。好处是可以大幅减少内网通信量。
虽然两种方法互有利弊,但现在是点分割占上风,各种分布式图计算框架都将自己底层的存储形式变成了点分割。主要原因有
以下两个。
磁盘价格下降,存储空间不再是问题,而内网的通信资源没有突破性进展,集群计算时内网带宽是宝贵的,时间比磁盘
更珍贵。这点就类似于常见的空间换时间的策略。
在当前的应用场景中,绝大多数网络都是“无尺度网络”,遵循幂律分布,不同点的邻居数量相差非常悬殊。而边分割会
使那些多邻居的点所相连的边大多数被分到不同的机器上,这样的数据分布会使得内网带宽更加捉襟见肘,于是边分割
存储方式被渐渐抛弃了。
图计算模型图计算模型
目前的图计算框架基本上都遵循BSP(Bulk Synchronous Parallell)计算模式。在BSP中,一次计算过程由一系列全局超步组
成,每一个超步由并发计算、通信和栅栏同步三个步骤组成。同步完成,标志着这个超步的完成及下一个超步的开始。BSP模
式很简洁。基于BSP模式,目前有两种比较成熟的图计算模型。
Pregel模型——像顶点一样思考
2010年,Google的新的三架马车Caffeine、Pregel、Dremel发布。随着Pregel一起,BSP模型广为人知。Pregel借鉴
MapReduce的思想,提出了“像顶点一样思考”(Think Like A Vertex)的图计算模式,让用户无需考虑并行分布式计算的细
节,只需要实现一个顶点更新函数,让框架在遍历顶点时进行调用即可。
常见的代码模板如下:
这个模型虽然简洁,但很容易发现它的缺陷。对于邻居数很多的顶点,它需要处理的消息非常庞大,而且在这个模式下,它们
是无法被并发处理的。所以对于符合幂律分布的自然图,这种计算模型下很容易发生假死或者崩溃。
GAS模型——邻居更新模型
下载后可阅读完整内容,剩余5页未读,立即下载
weixin_38592134
- 粉丝: 4
- 资源: 886
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功