Spark的图计算框架:GraphX
2017-05-12孙海
孙海
(四川大学计算机学院,成都 610065)
Spark的图计算框架:GraphX
孙海
(四川大学计算机学院,成都 610065)
Spark是UC Berkeley AMP Lab所开源的类Hadoop MapReduce的通用并行框架,是专为大规模数据处理而设计的快速通用的计算引擎,在如今的大数据环境下,Spark所发挥的作用正越来越大。介绍Spark的图计算框架GraphX。
Spark;并行;大数据;GraphX
1 Spark生态圈介绍
Spark生态圈即BDAS(伯克利数据分析栈)包含了 Spark Core、Spark Streaming、Spark SQL、MLLib和GraphX等组件,其中Spark Core提供内存计算、Spark Streaming主要处理实时应用、Spark SQL提供及时查询、MLLib的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无缝地集成并提供一站式解决平台[1]。

图1
GraphX是Spark中用于图的并行计算的模块,可以认为是GraphLab和Pregel在Spark上的重写及优化,与其他分布式图计算框架相比,GraphX具有的优势在于,它是依附于Spark之上的,天然的具备了Spark的一些特点,并且它提供了数据的一栈式解决方案,可以非常快速且有效地完成一整套图计算的流水作业。GraphX是Spark生态中的非常重要的组件,融合了图并行计算以及数据并行计算的优势,虽然在单纯的计算阶段的性能相比不如GraphLab等计算框架,但是如果从整个图处理流水线的视角(图构建,图合并,最终结果的查询)看,那么性能就非常具有优势了。流水作业处理过程如图2所示。

图2
2 属性图
在GraphX中,图的点和边都带有属性,而且这种属性图拥有Table和Graph两种视图,但是只有一份物理存储。Table视图将图看成Vertex Property Table和Edge Property Table等的组合,这些Table继承了Spark RDD的API[2]。具体说明如图3所示:

图3
可知点和边都带有属性,在实际应用中,我们可以根据需求自定义点和边的属性,从而更好地解决我们的问题。……
