一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
[第十三章]图计算
图计算简介
传统图计算不足
通用图计算软件
Pregel简介
Pregel图计算模型
有向图和顶点
顶点间的消息传递
Pregel的计算过程
Pregel的C++ API
消息传递机制
- 无法保证到达顺序
Combiner
满足交换律结合律的操作
Aggregator
全局通信,监控和数据查看机制
拓扑改变
利用函数Compute()修改图的拓扑结果,如增加删除变或顶点
- 局部有序
- Handler
输入和输出
类型:文本文件、关系数据库、键值数据库
- 输入文件生成的到图文件和执行图计算是分离的
Pregel体系结构
Pregel执行过程
一个大型图会划分成多个分区,顶点属于哪个分区由哈希函数确定(ID mod N)
- 选择多台机器执行任务,每台机器运行程序的一个副本。一台为Master其他为Worker
- Master协调
- Worker工作
- Master把图分区,一个Worker分配到一个或多个分区执行方法,发送接收消息
- Master把用户输入划分多个部分。每个部分是记录集合,每个记录包含顶点和边。Master为每个Worker分配输入中的一部分
- Worker收到的是自己的,立即更新
- 不是自己的发给加载到的顶点ID
- 输入被加载后,被标记为活跃
- Master向每个Worker发送指令。Worker接收运行超步
- 为每个分区分配一个线程
- 每个顶点发送上一个超步发给该顶点的消息,调用活跃顶点Compute()方法
- 顶点执行过程中可以对外发送消息,所有消息必须在超步结束前完成
- 所有工作完成Worker通知Master并把下一个超步还处于活跃的顶点数量发送给Maseter
- Master给Worker发送指令,通知计算结果进行持久化存储
容错性
Worker
- 标志位和消息队列分开保存
- 只保存一份顶点和边的值,但会保留两份标志位和输入消息队列
Master
Aggregator
Prev
[第十二章]Flink
Next
实验
Loading...