首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark图计算及GraphX简单入门

GraphX介绍 GraphX应用背景 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求。...GraphX的框架 设计GraphX时,点分割和GAS都已成熟,在设计和编码中针对它们进行了优化,并在功能和性能之间寻找最佳的平衡点。如同Spark本身,每个子模块都有一个核心抽象。...如同Spark,GraphX的代码非常简洁。GraphX的核心代码只有3千多行,而在此之上实现的Pregel模式,只要短短的20多行。...1.0版本,GraphX正式投入生产使用。 ? 值得注意的是,GraphX目前依然处于快速发展中,从0.8的分支到0.9和1.0,每个版本代码都有不少的改进和重构。...GraphX计算模式 如同Spark一样,GraphX的Graph类提供了丰富的图运算符,大致结构如下图所示。

2.5K51
您找到你想要的搜索结果了吗?
是的
没有找到

3小时入门Spark之Graphx

如果网络较大,单机跑不动,那么你需要Spark Graphx 来帮助你在集群上分布式实现图算法。...Graphx的图都是伪图。 属性图和非属性图:如果顶点和边是包括属性的,称为属性图,否则是非属性图。非属性图作用不大。通常顶点和边至少有一个是包括属性的,Graphx的图都是属性图。...在Graphx中,用顶点属性表VertexRDD和边属性表EdgeRDD联合来表示图。...六,Graphx内置常用图算法 Graphx内置的图算法一些作为GraphOps类的方法存在,另外一些在graphx.lib中。...七,其它常用图算法 Graphx内置的一些图算法基本上是用pregel迭代API实现的。 还有一些非常经典的图算法不太适合使用pregel迭代API实现,因此它们在Graphx中没有对应的内置实现。

4.3K32

Spark GraphX 对图进行可视化

Spark 和 GraphX 对并不提供对数据可视化的支持, 它们所关注的是数据处理. 但是, 一图胜千言, 尤其是在数据分析时. 接下来, 我们构建一个可视化分析图的 Spark 应用....org.jfree/jfreechart libraryDependencies += "org.jfree" % "jfreechart" % "1.0.19" 画图 导入 在导入环节需要注意的是, 如果是与 GraphX...{Graph => GraphStream} 绘制 首先是使用 GraphX 加载一个图, 然后将这个图的信息导入 graphstream 的图中进行可视化....将 GraphX 所构建图的 VertexRDD 和 EdgeRDD 里面的内容加入到 GraphStream 的图对象中: // Given the egoNetwork, load the graphX...第一个参数是每条边的字符串标识符, 由于在 GraphX 原有的图中并不存在, 所以我们需要自己创建. 最简单的方式是将这条边的两个端点的 vertex ID 连接起来.

1.8K10

GraphX具体功能的代码使用实例-Scala实现

GraphX 为整个图计算流程提供了强大的支持,先前已经有若干篇文章先后介绍了GraphX的强大功能,在GraphX官方编程指南中,提供了部分简单易懂的示例代码,其为GraphX的使用提供了一个初步的认识...,作为需要用GraphX来编码实现需求的读者来说是十分宝贵的资源。...本文利用一个初始示例代码,结合部分官方文档中的说明,对GraphX的部分功能方法进行了实践,在全部亲自运行通过后,对大部分代码添加了自己的理解和认识,并且在Pregel模型编程部分结合运行结果对其运行流程做了一定梳理...{Level, Logger} import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.apache.spark..., Double, Double) => Double, // 第二部分:sendMsg: EdgeTriplet[Double, Int] => Iterator[(graphx.VertexId,

2K31

图解Spark Graphx基于connectedComponents函数实现连通图底层原理

通俗而言,就是基于NebulaGraph Algorithm,通过配置读取出存储在NebulaGraph的数据源,然后转换成Graphx图结构(具备顶点和边的数据集),再结合Spark Graphx提供的算法...,例如Graphx的PageRank、ConnectedComponent等一系列算法函数,进一步去计算出该图里具备一定价值的关联数据。...在现实生活里,这两个子图就相当某个社区里的关系网,在Spark Graphx里,经常需要处理这类关系网的操作,那么,在一个图里如何得到各个子图的数据呢?...这时,就可以使用到Spark Graphx的connectedComponents函数,网上关于它的介绍,基本都是说它是Graphx三大图算法之一的连通组件。...二、案例说明 基于以上的图顶点和边数据,创建一个Graphx图—— val conf = new SparkConf().setMaster("local[*]").setAppName("graphx

23050

大数据技术之_19_Spark学习_05_Spark GraphX 应用解析 + Spark GraphX 概述、解析 + 计算模式 + Pregel API + 图算法参考代码 + PageRank

第1章 Spark GraphX 概述 1.1 什么是 Spark GraphX ?   ...为了支持图计算,GraphX 开发了一组基本的功能操作以及一个优化过的 Pregel API。另外,GraphX 也包含了一个快速增长的图算法和图 builders 的集合,用以简化图分析任务。   ...Step1、开始的第一步是引入 Spark 和 GraphX 到你的项目中,如下面所示: import org.apache.spark.graphx....2.1.2 GraphX 存储模式 Graphx 借鉴 PowerGraph,使用的是 Vertex-Cut(点分割)方式存储图,用三个 RDD 存储图数据信息:   VertexTable(id,...我们在前文 GraphX 介绍中对这三个概念有初步的了解。 2.2.1 vertices 在 GraphX 中,vertices 对应着名称为 VertexRDD 的 RDD。

1.8K41

GraphX 在图数据库 Nebula Graph 的图计算实践

二、算法应用 为了支撑大规模图计算的业务需求,Nebula Graph 基于 GraphX 提供了 PageRank 和 Louvain 社区发现的图计算算法,允许用户通过提交 Spark 任务的形式执行算法应用...此外,用户也可以通过 Spark Connector 编写 Spark 程序调用 GraphX 自带的其他图算法,如 LabelPropagation、ConnectedComponent 等。...算法思路 GraphX 的 PageRank 算法是基于 Pregel 计算模型的,该算法流程包括 3 步骤: 为图中每个节点(网页)设置一个同样的初始 PageRank 值; 第一次迭代:沿边发送消息...对于该公式的简化变形如下: [graphx-06.png] \Sigma_{in} 表示: 社区 c 内的边的权重之和 \Sigma_{k_n} 表示: 所有与社区 c 内节点相连的边的权重之和(因为...将节点 i 分配到某一社区中,社区的模块度变化为: [graphx-13.png] 其中 k_{i,in}: 社区内所有节点与节点 i 连边权重之和(对应新社区的实际内部权重和乘以 2,因为 k_{i,

2.5K30

在美国国会图书馆标题表的SKOS上运行Apache Spark GraphX算法

我还描述了Spark的GraphX库如何让您在图形数据结构上进行这种计算,以及我如何获得一些使用RDF数据的想法。我的目标是在GraphX数据上使用RDF技术,或者,以演示(他们彼此)如何互相帮助。...我用Scala程序演示了前者,它将一些GraphX数据输出为RDF,然后显示一些在该RDF上运行的SPARQL查询。...在GraphX数据结构中存储RDF 首先,正如我在前面的博客中提到的,GraphX开发目前意味着使用Scala编程语言进行代码编写,所以我一直在学习Scala。...GraphX使用的图形数据结构是顶点RDD和边RDD的组合。...其他在您的RDF数据上运行GraphX算法 除连接组件(Connected Components)之外的其他GraphX算法有Page Rank和Triangle Counting。

1.8K70

四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍

经过反复选择,我们还是选择了GraphX,主要原因有如下3个: 进展 虽然GraphX本身没什么进展,但是Spark本身的发展很快,从1.4到1.6版本,Spark Core在性能和稳定性上有了不少的提升...GraphX某种程度上,多多少少还是得到了好处 语义 GraphX的语义和运算符相对丰富,可以进行比较好的图算法描述,适合变化多样的图需求 门槛 GraphX的最大消耗是内存,某种程度上,这是个比较低门槛的投入...这个阶段,需要充分利用GraphX的Triplet特性。...但是很遗憾,在图计算这样的场景下,尤其是GraphX的设计框架,这个是行不通的。...要发挥GraphX的最佳性能,最少要有128G以上的内存 主要原因有两个是: 节点复制——越小越浪费 GraphX使用了点切割的方式,这是一种用空间换时间的方法,通过将浪费一定的内存,将点和它的邻居放到一起

2.5K81
领券