GraphX

Spark设计理念与基本架构

99封情书 提交于 2019-12-06 06:41:04
Spark设计理念与基本架构 https://www.cnblogs.com/swordfall/p/9280006.html 1.基本概念 Spark中的一些概念: RDD(resillient distributed dataset):弹性分布式数据集。 Partition:数据分区。即一个RDD的数据可以划分为多少个分区。 NarrowDependency:窄依赖,即子RDD依赖于父RDD中固定的Partition。Narrow-Dependency分为OneToOneDependency和RangeDependency两种。 ShuffleDependency:shuffle依赖,也称为宽依赖,即子RDD对父RDD中的所有Partition都有依赖。 Task:是送到某个Executor上的工作单元,即具体执行任务。Task分为ShuffleMapTask和ResultTask两种。ShuffleMapTask和ResultTask分别类似于Hadoop中的Map和Reduce。Task是运行Application的基本单位,多个Task组成一个Stage,而Task的调度和管理等是由TaskScheduler负责的。 Job:用户提交的作业。一个Job包含多个Task组成的并行计算,往往由Spark Action触发。 Stage:每个Job会被拆分成多组Task

Spark相关知识

旧时模样 提交于 2019-12-05 17:18:24
基本概念: Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度。是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写。 RDD:是spark核心数据处理模型,弹性分布式数据集(Resilient Distributed Dataset)是分布式内存的一个抽象概念,提供了一个高度受限的共享内存模型。一个RDD包含多个分区(Partition)。 DAG:有向无环图(Directed Acyclic Graph)反应RDD之间的依赖关系。 Executor:运行在工作节点(WorkNode)的一个进程,负责运行Task。 Application:用户编写的Spark程序。 Task:运行在Executor上的工作单元。 Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。 Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表了一组由关联的、相互之间没有shuffle依赖关系的任务组成的任务集。 以下是Spark中各种概念之间的相互关系: Spark组件: Spark主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX 等组件 。 Spark Core:Spark Core包含Spark的基本功能

Spark—4(Spark核心组件)

时间秒杀一切 提交于 2019-12-05 11:23:53
1、Spark Streaming Spark Sreaming基于Spark Core实现了可扩展、高吞吐和容错的 实时数据流处理 。现在支持的数据源和处理后的结果存储如下图所示。 Spark Streaming将流式计算分解成一系列短小的批处理作业。即将Spark Streaming的输入数据按照批处理尺寸(如1秒)分成一段段的数据(Stream),每一段数据都转换成Spark中的RDD,然后 将Spark Streaming中对DStream的转换操作变为Spark中对RDD的转换操作 ,将RDD经过操作变成中间结果保存在内存中,整个流式计算可以根据业务需求对中间结果进行叠加,或者存储到外部设备。如下图所示。 2、MLlib MLlib是Spark对常用的机器学习算法的实现库。 3、Spark SQL Spark SQL最常见的用途之一就是作为一个从Spark平台获取数据的渠道。支持从现有Apache Hive表以及流行的Parquet列式存储格式中读取数据的支持以及其他格式的支持如JSON。Spark SQL支持的数据源如下图所示。 4、GraphX Spark GraphX是Spark提供的关于图和图并行计算的API,它集ETL、试探性分析和迭代式的图计算于一体。 5、Spark的整体代码结构 参考资料: 1. Spark技术内幕,张安站 来源: oschina 链接:

[2019好程序员大数据教程]SparkGraphx从入门到精通(33集视频+源码+笔记)

懵懂的女人 提交于 2019-12-05 07:32:22
1、什么是 Spark GraphX ? Spark GraphX是一个分布式的图处理框架。社交网络中,用户与用户之间会存在错综复杂的联系,如微信、QQ、微博的用户之间的好友、关注等关系,构成了一张巨大的图,单机无法处理,只能使用分布式图处理框架处理,Spark GraphX就是一种分布式图处理框架。 2、 Spark GraphX 优点: 相对于其他分布式图计算框架,Graphx最大的贡献,也是大多数开发喜欢它的原因是,在Spark之上提供了一站式解决方案,可以方便且高效地完成图计算的一整套流水作业;即在实际开发中,可以使用核心模块来完成海量数据的清洗与与分析阶段,SQL模块来打通与数据仓库的通道,Streaming打造实时流处理通道,基于GraphX图计算算法来对网页中复杂的业务关系进行计算,最后使用MLLib以及SparkR来完成数据挖掘算法处理。 Spark GraphX的整体架构 (1)存储层和原语层:Graph类是图计算的核心类,内部含有VertexRDD、EdgeRDD和RDD。GraphImpl是Graph类的子类,实现了图操作。 (2)接口层:在底层RDD的基础之上实现Pragel模型,BSP模式的计算接口。 (3)算法层:基于Pregel接口实现了常用的图算法。包含:PageRank、SVDPlusPlus、TriangleCount

腾讯开源进入爆发期,Plato助推十亿级节点图计算进入分钟级时代

穿精又带淫゛_ 提交于 2019-12-04 11:42:18
腾讯开源再次迎来重磅项目,14日,腾讯正式宣布开源高性能图计算框架Plato,这是在短短一周之内,开源的第五个重大项目。 相对于目前全球范围内其它的图计算框架,Plato可满足十亿级节点的超大规模图计算需求,将算法计算时间从天级缩短到分钟级,性能全面领先领先于其它主流分布式图计算框架,并且 打破了原本 动辄 需要数百台服 务 器的 资 源瓶 颈 , 现 在,最少只需要十台服 务 器即可完成 计 算 。 腾讯Plato团队负责人于东海表示:“Plato已经支持腾讯内部包括微信在内的众多核心业务,尤其是为腾讯超大规模社交网络图数据的各类计算提供支撑,解决了现有其他计算框架无法在有限资源和有限时间内完成计算的难点。Plato不仅为腾讯创造了巨大的业务价值,开源后还将持续推动图计算技术和行业的协同发展,加速创新。” 实际上,图计算的“图”并不是指普通的图像和照片,而是用于表示对象之间关联关系的一种抽象数据结构,图计算就是以图作为数据模型来表达问题并予以解决的过程。图计算可以将不同来源、不同类型的数据融合到同一个图里进行分析,得到原本独立分析难以发现的结果,因此成为社交网络、推荐系统、网络安全、文本检索和生物医疗等领域至关重要的数据分析和挖掘工具。 Plato是腾讯内部图计算TGraph团队整合内部资源自主研发的一款高性能图计算框架,取名Plato是为了致敬伟大的数学家柏拉图

Graphx Visualization

匿名 (未验证) 提交于 2019-12-03 01:25:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I am looking for a way to visualize the graph constructed in Spark's Graphx. As far as I know Graphx doesn't have any visualization methods so I need to export the data from Graphx to another graph library, but I am stuck here. I ran into this website: https://lintool.github.io/warcbase-docs/Spark-Network-Analysis/ but it didn't help. Which library I should use and how to export the graph. 回答1: So you can do something like this Save to gexf (graph interchange format) Code from Manning | Spark GraphX in Action def toGexf [ VD , ED ]

spark graphx

匿名 (未验证) 提交于 2019-12-03 00:30:01
在介绍完Spark GraphX的属性图模型、简单的属性展示操作后,本章节介绍更多有关Spark GraphX的常用图操作。 在GraphX中,核心操作都是被优化过的,组合核心操作的定义在GraphOps中。 由于Scala隐式转换,定义在GraphOps的操作可以在Graph的成员中获取。例如:我们计算图中每个顶点的入度.(该方法是定义在GraphOps) val graph : Graph [( String , String ), String ] // Use the implicit GraphOps.inDegrees operator val inDegrees : VertexRDD [ Int ] = graph . inDegrees scala 下面我们列出常用的几个图操作 操作列表概述 这里只列出Graph中常用的操作函数API,仍有一些高级函数没有列出,如果需要还请参考Spark API文档。 /** Summary of the functionality in the property graph */ class Graph [ VD , ED ] { // Information about the Graph ===================================================================

spark graphx图计算

匿名 (未验证) 提交于 2019-12-03 00:09:02
graph import org.apache.spark.graphx.{Edge, Graph, VertexId} import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //求共同好友 object CommendFriend { def main(args: Array[String]): Unit = { //创建入口 val conf: SparkConf = new SparkConf().setAppName("CommendFriend").setMaster("local[*]") val sc: SparkContext = new SparkContext(conf) //点的集合 //点 val uv: RDD[(VertexId,(String,Int))] = sc.parallelize(Seq( (133, ("毕东旭", 58)), (1, ("贺咪咪", 18)), (2, ("范闯", 19)), (9, ("贾璐燕", 24)), (6, ("马彪", 23)), (138, ("刘国建", 40)), (16, ("李亚茹", 18)), (21, ("任伟", 25)), (44, ("张冲霄", 22)), (158, (

Spark学习之路(一)―― Spark简介

匿名 (未验证) 提交于 2019-12-02 23:38:02
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37809146/article/details/91277698 一、简介 Spark于2009年诞生于加州大学伯克利分校AMPLab,2013年被捐赠给Apache软件基金会,2014年2月成为Apache的顶级项目。相对于MapReduce的批处理计算,Spark可以带来上百倍的性能提升,因此它成为继MapReduce之后,最为广泛使用的分布式计算框架。 二、特点 Apache Spark具有以下特点: 使用先进的DAG调度程序,查询优化器和物理执行引擎,以实现性能上的保证; 多语言支持,目前支持的有Java,Scala,Python和R; 提供了80多个高级API,可以轻松地构建应用程序; 支持批处理,流处理和复杂的业务分析; 丰富的类库支持:包括SQL,MLlib,GraphX和Spark Streaming等库,并且可以将它们无缝地进行组合; 丰富的部署模式:支持本地模式和自带的集群模式,也支持在Hadoop,Mesos,Kubernetes上运行; 多数据源支持:支持访问HDFS,Alluxio,Cassandra,HBase,Hive以及数百个其他数据源中的数据。 三、集群架构 Term(术语) Meaning(含义) Application Spark应用程序

spark graphX作图计算

梦想与她 提交于 2019-12-02 06:38:11
一、使用graph做好友推荐 import org.apache.spark.graphx.{Edge, Graph, VertexId} import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //求共同好友 object CommendFriend { def main(args: Array[String]): Unit = { //创建入口 val conf: SparkConf = new SparkConf().setAppName("CommendFriend").setMaster("local[*]") val sc: SparkContext = new SparkContext(conf) //点的集合 //点 val uv: RDD[(VertexId,(String,Int))] = sc.parallelize(Seq( (133, ("毕东旭", 58)), (1, ("贺咪咪", 18)), (2, ("范闯", 19)), (9, ("贾璐燕", 24)), (6, ("马彪", 23)), (138, ("刘国建", 40)), (16, ("李亚茹", 18)), (21, ("任伟", 25)), (44, ("张冲霄", 22)),