python graphx_关于Graphx大规模图的计算系统介绍

Spark GraphX是一个分布式图处理框架,基于Spark提供对图计算和图挖掘的简单接口。它支持Python、Java、Scala等语言,以Vertex-Cut方式存储图,并采用BSP计算模式。GraphX提供了包括图信息操作、图属性操作和转换操作等一系列功能,如顶点和边的度数计算、图的反转、子图提取等。
摘要由CSDN通过智能技术生成

Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求。

GraphX支持的语言有python,java,scala等等,但是网上的教程以后面两种居多...

要先介绍Graphx,首先得知道什么是分布式图处理系统

一、我们先来了解分布式图计算系统的两个常见问题:

1、图存储模式

巨型图的存储总体上有边分割和点分割两种存储方式

边分割(Edge-Cut):每个顶点都存储一次,但有的边会被打断分到两台机器上。这样做的好处是节省存储空间;坏处是对图进行基于边的计算时,对于一条两个顶点被分到不同机器上的边来说,要跨机器通信传输数据,内网通信流量大。

点分割(Vertex-Cut):每条边只存储一次,都只会出现在一台机器上。邻居多的点会被复制到多台机器上,增加了存储开销,同时会引发数据同步问题。好处是可以大幅减少内网通信量。

如下图:

而我们所研究的Graphx存储模式采用的是Vertex-Cut(点分割)方式存储图,用三个RDD(存储图的数据信息)

主要原因有:

1.磁盘价格下降,存储空间不再是问题,而内网的通信资源没有突破性进展,集群计算时内网带宽是宝贵的,时间比磁盘更珍贵。这点就类似于常见的空间换时间的策略。

2.在当前的应用场景中,绝大多数网络都是“无尺度网络”,遵循幂律分布,不同点的邻居数量相差非常悬殊。而边分割会使那些多邻居的点所相连的边大多数被分到不同的机器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值