Spark GraphX 图形数据分析(入门级)

本文介绍了图计算的概念,图数据结构在社交网络、商品推荐等领域的应用,以及传统大数据处理平台的局限性。文章重点阐述了Spark GraphX作为分布式图计算API的优势,如内存复用、快速读取及与其他Spark组件的无缝衔接,旨在解决大规模图数据处理的挑战。
摘要由CSDN通过智能技术生成

一、什么是图计算,为什么需要用图计算?

什么是图计算?

图(Graph): 是一种重要的数据结构,它由节点V(或称为顶点,即个体),与边E(即个体之间的联系)构成,我们一般将图表示为G(V,E)。
图数据的典型例子有 网页链接关系、社交网络、商品推荐 等。

对应互联网来说: 可以把 web 网页看作顶点,页面之间的超链接关系作为边;
对应社交网络来说: 可以把用户看作顶点,用户之间建立的关系看作边。比如微信的社交网络,是由节点(个人、公众号)和边(关注、点赞)构成的图;淘宝的交易网络,是由节点(个人、商品)和边(购买、收藏)构成的图。

近年来,图数据规模呈指数级增长,可能达到数十亿的顶点和数万亿的边,且还在不断增长,单机模式下的图计算已经不适合目前数据的增长,传统的分布式大数据处理平台比如MapReduce、Spark也出现网络和磁盘读写开销大、运算速度慢、处理效率极低的问题。

对于图计算而言,性能成本、容错机制以及可拓展性都是非常重要的。如果性能可以显著提高,结点显著减少,那么就能极大地缩短运行时间。
在此基础上,如果使用更大开销的容错技术,例如检查点的方式,那么故障产生的概率将更低。但是,传统的大数据分析平台往往只在性能与可拓展性中选择了一方。比如MPI、OpenMP等注重性能的平台只支持可读写的数据,容错困难,可扩展性差,自动负载不平衡;专注于拓展性的大数据分析平台,如MapReduce、Spark等支持只读数据集,容错机制和扩展性好,自动负载平衡,但性能较低。
以Spark为例,其基于Scala语言,运行在JVM上,内存表示冗余,占用内存大,垃圾收集对性能影响大。在一些迭代的图算法上,开启128个线程的Spark程序性能有时候还不如优化很好的单线程程序,并且需要的内存容量是原始数据集的20倍——对于10TB级的数据,往往需要数百TB的内存,这在绝大部分生产环境中是不可能的。以Sogou的网页链接数据为例,Sogou的网页链接数据量为137TB,这是很难使用Spark进行计算的。此外,早期的图计算方法主要局限于智能社区或社交网络分析,如果图计算方案的性能和容量限制可以克服,图计算可以应用于更广泛的场景,如资本市场风险管理、生命科学研究、医疗保健交付、监控和应对道路事故、智能基础设施管理和其他领域。 因此,为应对图计算中对高效处理大规模图数据的巨大挑战,可扩展分布式图计算成为了当前热点研究问题。
自从2001年以来,分布式方法就一直是比较热议的处理大图数据的方法,特别是2003年和2004年,Google公布了MapReduce的基本原理和主要设计思想,这一模型的推出给大数据并行处理带来了巨大的革命性影响。此后提出的图处理系统,比如2006年发布的Apache Hadoop、2009年诞生于加州大学伯克利分校AMP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值