[第十三章]图计算

图计算简介

传统图计算不足

通用图计算软件

Pregel简介

Pregel图计算模型

有向图和顶点

顶点间的消息传递

Pregel的计算过程

Pregel的C++ API

消息传递机制

  • 无法保证到达顺序

Combiner

满足交换律结合律的操作

Aggregator

全局通信,监控和数据查看机制

拓扑改变

利用函数Compute()修改图的拓扑结果,如增加删除变或顶点
  • 局部有序
  • Handler

输入和输出

类型:文本文件、关系数据库、键值数据库
  • 输入文件生成的到图文件和执行图计算是分离的

Pregel体系结构

Pregel执行过程

一个大型图会划分成多个分区,顶点属于哪个分区由哈希函数确定(ID mod N)
  1. 选择多台机器执行任务,每台机器运行程序的一个副本。一台为Master其他为Worker
      • Master协调
      • Worker工作
  1. Master把图分区,一个Worker分配到一个或多个分区执行方法,发送接收消息
  1. Master把用户输入划分多个部分。每个部分是记录集合,每个记录包含顶点和边。Master为每个Worker分配输入中的一部分
      • Worker收到的是自己的,立即更新
      • 不是自己的发给加载到的顶点ID
      • 输入被加载后,被标记为活跃
  1. Master向每个Worker发送指令。Worker接收运行超步
      • 为每个分区分配一个线程
      • 每个顶点发送上一个超步发给该顶点的消息,调用活跃顶点Compute()方法
      • 顶点执行过程中可以对外发送消息,所有消息必须在超步结束前完成
      • 所有工作完成Worker通知Master并把下一个超步还处于活跃的顶点数量发送给Maseter
  1. Master给Worker发送指令,通知计算结果进行持久化存储

容错性

Worker

  • 标志位和消息队列分开保存
  • 只保存一份顶点和边的值,但会保留两份标志位和输入消息队列

Master

Aggregator

 
Prev
[第十二章]Flink
Next
实验
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++