GraphX

Spark(GraphX)

為{幸葍}努か 提交于 2021-02-10 08:16:49
Spark core GraphX core Pregel+GraphLab API GraphX工具包 处理流水线 raw data from FS/DB->initail graph by ETL->subgraph by Slice->Pagerank by Graphlib/Pregel compute->store/ to FS/DB 数据结构(物理数据结构) RDPG(Resilient Distributed Property Graph),一种点和边都带属性的有向多重图 实际上都会转化为RDD(RDD[VertexPartition]和RDD[EdgePartition]) 操作视图(逻辑数据结构) RDPG,支持两种视图Graph视图和Collection/Table视图 Collection/Table视图由边表和点表组成,使用spark rdd API Graph视图是直接操作图 图存储 边分割(GraphX采用):每个顶点都存储一次,但有的边会被打断分到两台机器上 点分割:每条边只存储一次,都只会出现在一台机器上 每个图由3个RDD组成 图计算 基础模型:BSP(bulk synchronous parallel),一次计算分多个超步,一个超步含三子步(并发计算,通信,栅栏同步) BSP扩展模型:     消息通信模型(Pregel,顶点思考模型

应对万亿数据上亿并发!字节跳动的图数据库研发实践

穿精又带淫゛_ 提交于 2020-12-11 10:21:36
作者:字节跳动技术团队 技术架构团队来源:字节跳动技术团队 【责任编辑:未丽燕 TEL:(010)68476606】 https://database.51cto.com/art/202012/633379.htm 一、图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: 用户信息、用户和用户的关系(关注、好友等); 内容(视频、文章、广告等); 用户和内容的联系(点赞、评论、转发、点击广告等)。 这三种数据关联在一起,形成图状(Graph)结构数据。 为了满足 social graph 的在线增删改查场景,字节跳动自研了分布式图存储系统——ByteGraph。针对上述图状结构数据,ByteGraph 支持有向属性图数据模型,支持 Gremlin 查询语言,支持灵活丰富的写入和查询接口,读写吞吐可扩展到千万 QPS,延迟毫秒级。目前,ByteGraph 支持了头条、抖音、 TikTok、西瓜、火山等几乎字节跳动全部产品线,遍布全球机房。在这篇文章中,将从适用场景、内部架构、关键问题分析几个方面作深入介绍。 ByteGraph 主要用于在线 OLTP 场景,而在离线场景下,图数据的分析和计算需求也逐渐显现。2019 年年初,Gartner 数据与分析峰会上将图列为 2019 年十大数据和分析趋势之一,预计全球图分析应用将以每年 100% 的速度迅猛增长

<Zhuuu_ZZ>Spark项目实战-航班飞行网图分析

雨燕双飞 提交于 2020-12-02 23:12:38
航班飞行网图分析 一 项目技能 二 项目需求 三 数据探索 下载数据 数据格式 四 项目实战 构建航班飞行网图 统计航班飞行网图中机场与航线的数量 计算最长的飞行航线 找出最繁忙的机场 找出最重要的飞行航线 找出最便宜的飞行航线 一 项目技能 Spark GraphX API vertices、edges、triplets、 numEdges、numVertices inDegrees、outDegrees、degrees mapVertices、mapEdges、mapTriplets Spark GraphX PageRank Spark GraphX Pregel 二 项目需求 探索航班飞行网图数据 构建航班飞行网图 使用Spark GraphX完成下列任务 统计航班飞行网图中机场的数量 统计航班飞行网图中航线的数量 计算最长的飞行航线(Point to Point) 找出最繁忙的机场 找出最重要的飞行航线(PageRank) 找出最便宜的飞行航线(SSSP) 三 数据探索 下载数据 链接: 航班飞行网图数据 .提取码:gvyd 数据格式 文件格式为CSV,字段之间分隔符为“,” 依次为:#日、周#、航空公司、飞机注册号、航班号、起飞机场编号、起飞机场、到达机场编号、到达机场、预计起飞时间(时分)、起飞时间、起飞延迟(分钟)、到达预计时间、到达时间、到达延迟(分钟)

大数据Spark生态圈,进击Spark生态圈必备,迈向“高薪”的基石

断了今生、忘了曾经 提交于 2020-10-02 08:24:21
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。从各方面报道来看Spark抱负并非池鱼,而是希望替代Hadoop在大数据中的地位,成为大数据处理的主流标准,不过Spark还没有太多大项目的检验,离这个目标还有很大路要走。 Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing 模型)。在Spark官网上介绍,它具有运行速度快、易用性好、通用性强和随处运行等特点。 l运行速度快 Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取

Spark核心之Spark Streaming

非 Y 不嫁゛ 提交于 2020-10-01 09:08:24
前面说到Spark的核心技术的时候,有和大家说过,有五大核心技术,不知道大家还记不记得; 给大家回忆下,这五大核心技术:分布式计算引擎 Spark Core 、基于Hadoop的SQL解决方案 SparkSQL 、可以实现高吞吐量、具备容错机制的准实时流处理系统 Spark Streaming 、分布式图处理框架 Spark GraphX 和构建在Spark上的分布式机器学习库 Spark MLlib ,现在应该有个印象了吧,其它的我就不多说了,今天主要是对Spark Streaming做个简单介绍,以便理解。 Spark Streaming理解 Spark Streaming 是核心 Spark API 的扩展,支持可伸缩、高吞吐量、容错的实时数据流处理。数据可以从许多来源获取,如 Kafka、Flume、Kinesis 或 TCP sockets,可以使用复杂的算法处理数据,这些算法用高级函数表示,如 map、reduce、join 和 window。 最后,处理后的数据可以推送到文件系统、数据库和活动仪表板。实际上,还可以将 Spark 的 MLlib 机器学习和 GraphX 图形处理算法应用于数据流。Spark Streaming 处理的数据流如下图所示。 流是什么 ? 简单理解,就好比水流,是不是有源头,但不知道终点,有始没有终,你永远不知道水流什么时候结束

Spark系列 (七)SparkGraphX下的Pregel方法----完美解决单源最短路径的应用算法

主宰稳场 提交于 2020-08-19 19:50:05
文章目录 Pregel框架: 一:Spark GraphX Pregel: 二:Pregel计算过程: Pregel函数源码及各个参数解析: 三:案例:单源最短路径 第一步:调用pregel方法: 第二步:第一次迭代: 第三步:第二次迭代: 第四步:不断迭代,直至所有顶点处于钝化态 案例代码如下: Pregel框架: 一:Spark GraphX Pregel: Pregel是google提出的用于大规模分布式图计算框架 图遍历(bfs) 单源最短路径(sssp) pageRank计算 Pregel的计算有一系列迭代组成 Pregel迭代过程 每个顶点从上一个superstep接收入站消息 计算顶点新的属性 在下一个superstep中向相邻的顶点发送消息 当没有剩余消息时,迭代结束 二:Pregel计算过程: Pregel函数源码及各个参数解析: def pregel [ A : ClassTag ] ( // 图节点的初始信息 initialMsg : A , // 最大迭代次数 maxIterations : Int = Int . MaxValue , // activeDirection : EdgeDirection = EdgeDirection . Either ) ( vprog : ( VertexId , VD , A ) => VD , sendMsg :

Spark:统一分布式大数据分析引擎

帅比萌擦擦* 提交于 2020-08-16 01:27:11
LearningSpark 今年早些时候Spark3.0发布,前几天看到Spark学习手册也发布了第二版涵盖Spark3.0功能,想起刚开始学习Spark时就是读的这本书,最近有空就直播读下Spark学习手册第2版这本书,若能帮助到一些人也是好的! 从2020年8月3号每天早上5:30读LearningSpark这本书,如果你想学习大数据学习Spark想早起就可以一起来 直播间 ,如果你错过了直播也可以看视频回放! 第一章 Spark简介:统一的分析引擎 Spark学习手册第二版 LearningSpark2.0 2020080301 LearningSpark之Spark缘起 2020080302 LearningSpark之Google名字的来历 2020080303 LearningSpark之大数据在Yahoo 2020080304 LearningSpark之Spark光芒初露 2020080401 LearningSpark之脱离了大数据的人工智能就是耍流氓 2020080402 LearningSpark之Spark的Speed 2020080403 LearningSpark之Spark的易用模块化易扩展 2020080404 LearningSpark之一统大数据分析 2020080501 LearningSpark之SparkSQL 2020080502

Spark 系列(六)Spark-GraphX的PageRank算法----热度排名的实例代码+图解展示

左心房为你撑大大i 提交于 2020-08-11 12:05:16
写在前面: 我是 「nicedays」 ,一枚喜爱 做特效,听音乐,分享技术 的 大数据开发猿 。这名字是来自 world order 乐队的一首 HAVE A NICE DAY 。如今,走到现在很多坎坷和不顺,如今终于明白 nice day 是需要自己赋予的。 白驹过隙,时光荏苒,珍惜当下 ~~ 写博客一方面是对自己学习的一点点 总结及记录 ,另一方面则是希望能够帮助更多对大数据感兴趣的朋友。如果你也对 大数据与机器学习 感兴趣,可以关注我的 动态 https://blog.csdn.net/qq_35050438 ,让我们一起挖掘数据与人工智能的价值~ Spark GraphX 图算法: 一:PageRank模型: 每个网页为一个点 A到B的链接抽象为一条有向边 整张网页链接抽象成一份有向图 接下来我们通过一个转移矩阵来表示用户从页面i到页面j的可能性 M = [ 0 1 2 0 1 2 1 3 0 0 1 2 1 3 1 2 0 0 1 3 0 1 0 ] M = \begin{bmatrix}0 & \frac{1}{2} & 0 & \frac{1}{2} \\\frac{1}{3} & 0 & 0 & \frac{1}{2} \\\frac{1}{3} & \frac{1}{2} & 0 & 0 \\\frac{1}{3} & 0 & 1 & 0\end{bmatrix

GraphX学习笔记——可视化

China☆狼群 提交于 2020-08-11 06:29:04
首先自己造了一份简单的社交关系的图 第一份是人物数据,id和姓名,person.txt 1 孙俪 2 邓超 3 佟大为 4 冯绍峰 5 黄晓明 6 angelababy 7 李冰冰 8 范冰冰 第二份是社交关系数据,两个人的id和社交关系,social.txt 1 丈夫 2 2 妻子 1 1 搭档 3 3 同学 4 3 好友 5 5 好友 3 5 妻子 6 5 好友 7 7 好友 8 使用SparkX和GraphStream来处理数据 package graphx import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.graphstream.graph.implementations.{AbstractEdge, SingleGraph, SingleNode} /** * Created by common on 18-1-22. */ object GraphxLearning { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("GraphX").setMaster(

Spark学习笔记0——简单了解和技术架构

为君一笑 提交于 2020-04-24 21:20:26
Spark学习笔记0——简单了解和技术架构 笔记摘抄自 [美] Holden Karau 等著的《Spark快速大数据分析》 [TOC] 什么是Spark Spark 是一个用来实现快速而通用的集群计算的平台。 扩展了广泛使用的MapReduce 计算模型 能够在内存中进行计算 一个统一的框架简单而低耗地整合各种处理流程 接口非常丰富 技术架构和软件栈 Spark 的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎 Spark 项目还包含多个紧密集成的组件,这些组件关系密切并且可以相互调用 各组件间密切结合的设计原理的优点: 软件栈中所有的程序库和高级组件都可以从下层的改进中获益 只需要一套软件系统,运行整个软件栈的代价变小了 能够构建出无缝整合不同处理模型的应用(例如机器学习和数据分析同时进行) Spark Core Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块 Spark Core 中包含了对 RDD[^1] 的 API 定义 Spark SQL Spark 用来操作结构化数据的程序包 可以使用 SQL 和 Apache Hive 版本的SQL 方言(HQL)来查询数据 支持多种数据源(比如Hive 表、Parquet 以及JSON 等)