一.图计算简介

1.1 图计算是专门针对图结构数据的处理.

  • 许多大数据都是以大规模图或网络的形式呈现;
  • 许多非图结构的大数据,也常常被转换为图模型后进行分析;
  • 图结构很好地表达了数据之间的关联性;
  • 关联性计算是大数据计算的核心------通过获得数据的关联性,可以从噪音很多的海量数据中抽取有用的信息;

1.2 传统的图计算算法存在典型问题

  • 常常表现出比较差的内存访问局部性;
  • 针对单个节点的处理工作过少;
  • 计算过程中伴随着并行度的改变;

1.3 解决方案

  • 为特定的图应用定制相应的分布式实现,通用性不好;
  • 基于现有的分布式计算平台进行图计算;
  • 使用单机的图算法库:BGL,LEAD,NetworkX,JDSL,Standford GraphBase 和FGL等,对于大规模计算能力有限.
  • 使用已有的并行图计算系统:Parallel BGL 和CGM Graph ,实现了很多并行图算法,存在容错性问题;

1.4 MapReduce 是分布式计算平台.

  • MapReduce 在图计算方面的性能和易用性不好,是粗粒度的计算,以为单位进行数据分析

1.5 通用的图计算软件

  • 基于遍历算法的,实时的图数据库;如,Neo4j,OrientDB,DEX,Infinite Graph;
  • 以图顶点为中心的,基于消息传递批处理的并行引擎;如,GoldenOrb,Giraph,Pregel,Hama;
  • 共同特点:BSP 模型
    • BSP(Bulk Synchronous Parallel Computing Mode) 模型叫整体同步并行计算模型或者简称为大同步模型
        

二. Pregel

2.1 简介

1.Pregel 是谷歌公司发布的一款商业图计算产品;

  • Caffeine:快速用于大规模网页索引的构建;
  • Dremel:实时性的交互分析产品,是一种只读嵌套数据的分析,支持分析PB 级别的数据;
  • Pregel:基于BSP 模型实现的并行图计算系统;

2.2 Pregel 图计算模型

1.有向图和顶点

2.传递消息的基本方法

  • 远程读取;
  • 基于共享内存;
  • 基于消息传递模型;

3.Pergel 采用消息传递模型主要基于以下两个原因:

  • 远程读取具有较高的延迟,如MapReduce;
  • 消息传递采用的是异步的批量的方式传递,延迟低;

4.Pregel 的计算过程


5.顶点的状态

6.Pregel 实例

2.3 Pregel C++ API

  • 定义基类Vertex

  • 消息传递机制和Combiner
    顶点之间的通讯是通过消息传递机制来实现的,每条消息包含了消息值和需要到达的目标顶点ID.
    在一个超步S 中,一个顶点可以发送任意数量的消息,这些消息将在下一个超步(s+1)中被其他顶点接收.
    Combiner:


  • Aggregator,拓扑改变和输入输出

    • 可以通过Aggregator实现全局协调功能;

    拓扑改变


    输入输出:

2.3 Pregel体系结构

1.Pregel执行过程

  • 用户程序的执行过程:

    • 选择集群中的多台机器执行图计算任务,有一台及其会被选为Master 其他机器作为Worker;
    • Master把一个图分成多个分区,并把分区分配到多个Worker,一个Worker会领到一个或多个分区,每个Worker知道所有其他Worker所分配到的分区情况;



2.容错性

3.Worker,Master和Aggregator

  • worker : 一般在执行过程中它的信息保存在内存当中,顶点当前的值,出射边列表,消息队列,标志位;worker会对自己所管辖的分区中的每个顶点进行遍历,并调用顶点上的Compute() 函数,Computer 函数接收顶点当前值,消息迭代器和出射边迭代器三个参数;

    保存两份,一份用于当前超步,一份用于下一个超步.

  • Master:



4.Pregel的应用实例------单源最短路径

三.Hama的安转使用

3.1 Hama 简介

图计算-Pregel-Hama相关推荐

  1. 12_大数据之图计算_note

    大数据中的图计算 此笔记参考厦门大学-林子雨<<大数据技术原理与应用>> 1 图计算简介 1.1 图结构数据 许多大数据都是以大规模图或网络的形式呈现,如社交网络.传染病传播途 ...

  2. Pregel(图计算)技术原理

    图计算简介 图结构数据: 许多大数据都是以大规模图或网络的形式呈现. 许多非图结构的大数据,也常常会被转换为图模型后进行分析. 图数据结构很好地表达了数据之间的关联性. 关联性计算是大数据计算的核心- ...

  3. Spark入门实战系列--9.Spark图计算GraphX介绍及实例

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送–Spark入门实战系列>获取 1.GraphX介绍 1.1 GraphX应用背景 Spark GraphX是一个分布式图处理 ...

  4. 大数据技术原理与应用5Spark、流计算、图计算

    第10讲 Spark 10.1 Spark概述 10.1.1 Spark简介 •Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于 2009年开发,是基于内存计算的大数据并行计 ...

  5. 那个分分钟处理10亿节点图计算的Plato,现在怎么样了?

    受访者 | 于东海 记者 | 夕颜 出品 | CSDN(ID:CSDNnews) 「AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分.通过对 AI 生态顶级大咖 ...

  6. 一周一论文(翻译)—— [PVLDB 12] Distributed GraphLab A Framework for Machine Learning 分布式机器学习图计算框架

    摘要 虽然高级别数据并行框架,像MapReduce,简化了大规模数据处理的设计和实现的系统,他们没有自然或有效地支持许多重要数据挖掘和机器学习算法并且导致学习系统效率低下.为了帮助填补这一重要空白,我 ...

  7. 字节跳动自研万亿级图数据库 图计算实践 【太高级了,不是圈里的人,有简明见解的吗?】

    1. 图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: 用户信息.用户和用户的关系(关注.好友等): 内容(视频.文章.广告等): 用户和内容的联系(点赞.评论.转 ...

  8. 计算机图形学论文_论图计算

    计算机图形学论文 自从机械计算开始以来,图形概念就已经存在,并且在纯数学领域已经存在了数十年. 由于数据库的黄金时代,图形在软件工程中变得越来越流行. 图形数据库提供了一种持久化和处理图形数据的方法. ...

  9. 基于图查询系统的图计算引擎

    柯学翰, 陈榕 上海交通大学软件学院并行与分布式系统研究所,上海 200240 摘要:在目前的研究中,图查询和图计算系统是相互独立的,但在实际应用中两者通常是同时存在的.为解决相互独立的系统带来的存储 ...

最新文章

  1. 伦理困境:人工智能浪潮与“AI威胁论”之争
  2. Kubernetes — Overview
  3. 卸载 流程_「工具」Windows 卸载软件,这一个就够了
  4. Flex值得一看参考资源
  5. ajax mysql项目 react_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
  6. js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
  7. 颜宁的学生都已经副院长了!还发表了学校首篇Nature
  8. 百度App网络深度优化系列(一):DNS优化
  9. 金融科技的别样财报:趣店坎坷后回暖、品钛首盈利
  10. [转载]java对cookie的操作
  11. 【情感分析】情感分析研究的新视野
  12. 如何在mac中使用downie下载视频?
  13. 小游戏策划案例精选_小游戏策划方案
  14. linux加载显卡驱动模块,linux怎样加载显卡驱动,急,在线等
  15. 启动pe系统找不到计算机硬盘分区,pe系统看不到硬盘分区_pe系统里看不到硬盘...
  16. oracle虚拟机内鼠标消失,鼠标消失在VirtualBox中
  17. 【C++】球盒问题总结(八种情况)
  18. 计算机卡住了怎样恢复,电脑经常死机,教您电脑经常死机怎么修复
  19. Java 程序是如何执行的
  20. 基于Spring Boot+Vue的毕业设计选题管理系统设计与实现

热门文章

  1. LeetCode 742. 二叉树最近的叶节点(建立父节点信息+BFS)
  2. linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件
  3. ACL2020 奇葩论文标题大赏
  4. 你的模型真的陷入局部最优点了吗?
  5. 开源开放 | 熵简科技 AI Lab 开源金融领域中文预训练语言模型 FinBERT
  6. 如何关闭docker容器里的进程
  7. 常见的算法面试问题以及代码实现
  8. 剥开比原看代码07:比原节点收到“请求区块数据”的信息后如何应答?
  9. luoguP1463:反素数ant(打表心得☆)
  10. python更新后yum问题