图计算-Pregel-Hama

一.图计算简介

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 简介
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode解题记录(二)

leetcode14:最长公共前缀 问题描述: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" …

英伟达推出全球首个元宇宙平台,豪砸数亿是为什么?

来源:AI科技大本营(ID:rgznai100)编译:禾木木翻译:AI科技大本营NVIDIA 在 SIGGRAPH 推出首个全球元宇宙平台,并赢得了最佳展示奖。目前处于公测阶段,它对 NVIDIA RTX 和 GeForce RTX GPU 用户免费开放。用户在安装完 N…

长链剖分题表

长链剖分,类似于重链剖分(dsu on tree)的一种替代算法。最广泛的用法是优化与深度有关的树上DP,以及处理一些与点分治类似的问题。有一部分长链剖分题也可以用dsu on tree做,单复杂度往往会多一个log。 每个点找到高度最大的儿子作为自己的重…

流计算

一.概述 实时获取来自不同数据源的海量数据经过实时分析处理,或的有价值的信息. 1.数据的处理流程 静态数据:数据不会发生变化,如数据仓库中的数据;流数据:数据以大量,快速.时变的流形式持续到达&#xf…

SpringBoot集成Spring Security(二)注册 、密码加密、修改密码

SpringBoot集成Spring Security(一)登录注销 写在前面 上一节创建了项目并且利用Spring Security完成了登录注销功能,这里继续说一下注册、密码加密和找回密码,代码注释较清晰。 一、web层 控制 StudentController.java package …

自动驾驶需要做哪些测试?

来源:广电计量,文:李梓熙、王闻彦参考资料来源:《有问必答 | 自动驾驶汽车之道路“测试”与“考试”》by公安部交通管理科研所微发布自动驾驶已然成为汽车行业热词。在大家殷切的期盼下,近几年上市的车型,多…

雷林鹏分享:C# 多态性

C# 多态性 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。 多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生…

大数据的应用-UserCF和ItemCF推荐算法

一.推荐系统 1.1 推荐系统是大数据在互联网领域的典型应用,它可以通过分析用户的历史记录来了解用户的喜好,从而主动的为用户推荐其感兴趣的信息,满足用户的个性化推荐需求. 1.2 推荐系统是自动联系用户和物品的一种工具&#x…

计算机网络之Web应用

1、web与HTTP world Wide Web: 网页 网页互相链接 网页包含多个对象: 对象: HTML文件、JPEG图片、视频文件、动态脚本等 基本HTML文件: 包含对其他对象引用的链接 对象的寻址: URL(Uniform Resource Locato…

UI控件Telerik UI for WinForms发布R1 2019|附下载

Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 【Telerik UI for WinForms R1 2019下载】新增&#xf…

HBase错误解决(启动Hbase出现错误的替换,启动hbase shell出现ERROR KeeperErrorCode=NoNode for /hbase/master)

1.问题描述 我查阅资料发现,网上很多人和我出现相同的错误,却没有一个可以解决的教程,于是我在解决了我的一个错误后就立即写了这篇文章,需要能帮到一些人,文章不一定对每个人都有效&#xff0c…

如何使用jmeter进行并发登录测试

第一种方案直接从数据库中获取账号和密码 1、设置线程数为20 ,我们的并发用户量就是20个用户同时登录 2、添加定时器 3、设置集合点,当用户数量达到20个的时候再同时请求进行登录操作 4、添加配置元件:JDBC Connection Configuration 5、添加…

云计算与分布式系统课程学习笔记(一)——云计算简介

大数据对于系统架构的需求 显式的需求 海量计算和存储快速计算 隐式的需求 数据的快速传输灵活性低成本 如何实现这些需求? 并行化(并行化的理念存在于计算机方方面面) 并行请求(分配给多个计算机)并行线程&…

DeepMind用神经网络求解MIP后,攻破运筹学只是时间问题?你想多了

来源:杉数科技作者:皇甫琦、葛冬冬、杉数科技COPT开发组Google的DeepMind团队最近官宣了一篇神经网络(Neural Networks)求解MIP论文。一石激起千层浪,在国内外的运筹优化社群引起了讨论。部分围观吃瓜群众纷纷表示:"This is …

计算机视觉-SIFT

一.SIFT(Scale Invariant Feature Transform) 算法 1.图像尺度空间 要让计算机能够对物体在不同尺度下有一个统一的认知,就要需要考虑图像在不同尺度(远近,大小,颜色区别等)下存在的特点.尺度空间的获取通常使用高斯模糊来实现&…

世界上最好的光刻机为什么来自荷兰?【物联网智商精选】

来源: 大数据实验室“是说芯语”已陪伴您439天现在微电子集成电路技术对世界的各种科技电子产品越来越应用广泛了,一个国家的发展越来越离不开高端芯片了,一个国家越是发展得越快对高端芯片需求量越大,比如我国的芯片需求占世界的50&#xff…

云计算与分布式系统课程学习笔记(二)——Linux基本命令的使用与熟悉

(1) jps 【显示当前系统的java进程情况,及其id号】 -q只显示pid,不显示class名称,jar文件名和传递给main方法的参数-m输出传递给main方法的参数-l输出主类的完整包名或者jar文件完整路径名-v输出传递给JVM的参数 编写一个JSPDemo…

【转】为了修复打码女神脸,他们提出二阶段生成对抗网络EdgeConnect

当图像缺失部分太多的时候,结合多阶段方法和边缘先验信息,这个 GAN 实现了高还原度的图像修复,玩法还不止于此。 在过去几年中,深度学习技术在图像修复方面取得了显着进步。然而,许多这些技术无法重建合理的结构&#…

QT跨平台项目开发经验(项目打包)

1.代码编写 1.1 代码编写简短,代码运行效率高,适当注释。一般一个大型的项目,代码的运行效率要求较高,一般需要秒级响应,甚至毫秒级。 1.2 建议使用命名空间::的形式来访问该命名空间中的变量和函数,这样可…

高等数学、线性代数、概率论、几何这些知识可以用来干什么?

来源:图灵人工智能应该会有很多模友在开始学习数学分析和高等数学时,第一反应是:但其实大多数人所用的教材,从大众角度看还没有到一种极致精确的架构数学的程度。大多数的教材所做的还是“我教会你怎么弄这个东西就行了&#xff0…