Spark之GraphX的特点

原创 2018年04月16日 19:44:21

1.基于内存实现了数据的复用与快速读取

    具有较多迭代次数是图计算算法的一个重要特点。在海量数据背景下,如何保证图计算算法的执行效率是所有图计算模型面对的一个难题。基于MapReduce的图计算模型在进行迭代计算过程中,中间数据的操作都是基于磁盘展开的。这使得数据的转换和复制开销非常大,其中包括序列化开销等。除此之外,许多与图结构信息相关的数据无法进行重用,这使得系统不得不反复读取一些相同的数据对图进行重构。相对于传统的图计算模型,GraphX得益于Spark中的RDD和任务调度策略,能够对图数据进行缓存和Pipline操作,实现了图的复用与快速运算。

2.统一了图视图和表视图

    传统图计算模型都是将表视图和图视图分别进行实现的,这意味着图计算模型要针对不同的视图分别进行维护,而且视图间的转换也比较烦琐。GraphX通过弹性分布式属性图统一了表视图和图视图,即两种视图对应同一物理存储但是各自具有独立的操作,这使得操作更具有灵活性和高效性,如下图,基于GraphX执行图计算任务,一方面用户不必再对不同的组件进行学习、部署、维护和管理,降低运维成本;另一方面更有利于实现基于内存的Pipeline操作。


此外,在GraphX中还提出了一种路由表(routing table)。该表描述了图存储时的一些元数据信息,记录了顶点所在的物理位置以及顶点间的关系。利用该路由表能够极大地提高图计算的执行效率。

3.能与Spark框架上的组件无缝集成

仅从图计算性能方面对比,目前性能最好的模型仍然是GraphLab。但是单一组件或单一性能无法决定整个系统的综合处理能力。尤其是在大数据背景下,任何数据处理业务都需要同一平台上的多个组件通过相互协作来完成,例如海量数据的获取、表示、分析、查询、可视化以及数据通信等各环节对应着一系列专用的组件。然而不同组件之间在集成性方面存在着很大差异。由于GraphX是Spark上的一个组件,能与Spark Streaming、Spark SQL和SparkMLlib等进行无缝衔接,例如可以利用SparkSQL进行ETL,然后将处理后的数据传给GraphX进行计算;或者GraphX与MLlib结合对图数据进行深度挖掘,这些都是Spark一栈式解决方案的具体应用,而Garph、GraphLab等则不具备这一特点。因此,在Spark平台上进行图计算,首选GraphX.

Spark组件之GraphX学习1--入门实例Property Graph

更多代码请见:https://github.com/xubo245/SparkLearning 比较好理解,详细了解请看参考【1】 1.属性图 2.代码: /** * @author ...
  • bob601450868
  • bob601450868
  • 2016年05月03日 19:09
  • 1025

Spark优化那些事(2)-graphx实现介数估算踩坑总结

背景 最近一段时间在使用spark graphx实现介数估算。介数(betweenness)可分为点介数和边介数,在图中衡量一个点或边的重要程度,后面的讨论均是针对点介数,边介数实现方式类似。这个指...
  • A3301
  • A3301
  • 2016年11月19日 11:58
  • 1190

SparkGraphX快速入门

1       图 图是由顶点和边组成的,并非代数中的图。图可以对事物以及事物之间的关系建模,图可以用来表示自然发生的连接数据,如: 社交网络 互联网web页面 常用的应用有: 在地图应用中...
  • fengzaibiao
  • fengzaibiao
  • 2017年06月04日 11:29
  • 3209

spark graphx文章整理

graphx看到的比较有参考价值的文章: 1. 官方文档中文版:https://endymecy.gitbooks.io/spark-programming-guide-zh-cn/content/q...
  • u013045749
  • u013045749
  • 2016年01月13日 16:04
  • 1634

Spark GraphX原理介绍

背景现实应用中,数据内部可能存在较高的关联度,如图模型应用。在对这样的数据进行处理时,并行计算框架就会面临较大的挑战,会引入大量的数据连接(join)和聚合(aggregation)操作,带来大量的计...
  • tanglizhe1105
  • tanglizhe1105
  • 2016年02月25日 20:29
  • 7535

Spark组件之GraphX学习8--邻居集合

更多代码请见:https://github.com/xubo245/SparkLearning 1解释 收集每个顶点的邻居顶点 2.代码: /** * @author x...
  • bob601450868
  • bob601450868
  • 2016年05月03日 22:28
  • 1007

Spark组件之GraphX学习16--最短路径ShortestPaths

更多代码请见:https://github.com/xubo245/SparkLearning 1解释 求图中的最短路径,更多的请见参考【3】,这篇写的很详细 2.代码: /** * @a...
  • bob601450868
  • bob601450868
  • 2016年05月04日 20:38
  • 2824

spark-graphx以及图的相关介绍

首先介绍图:一、图的基本概念图是由顶点集合(vertex)及顶点间的关系集合组成的一种数据结构: Graph=( V, E ) V表示顶点的集合,E表示图的边的集合即顶点之间关系的集合。其中 V ...
  • qq_14950717
  • qq_14950717
  • 2016年05月06日 22:12
  • 1252

Spark GraphX

GraphX是spark的一个新组件用于图和并行图计算。在一个高水平,GraphX通过引进一个新的图抽象扩展了spark RDD:带有顶点和边属性的有向多重图。为了支持图计算,GraphX 提供了很多...
  • mach_learn
  • mach_learn
  • 2015年06月15日 10:51
  • 3073

Spark GraphX在淘宝的实践

由于Spark GraphX性能良好,又有丰富的功能和运算符,能在海量数据上自如运行复杂的图算法,淘宝尝试将它作为分布式图计算平台,进行各种算法尝试和生产应用。本文结合GraphX的原理和特点,分享其...
  • u013063153
  • u013063153
  • 2017年01月25日 11:20
  • 1200
收藏助手
不良信息举报
您举报文章:Spark之GraphX的特点
举报原因:
原因补充:

(最多只允许输入30个字)