20210221
大数据 | 大数据基础--系统之大图计算框架实例
亲爱的读者朋友大家晚上好,上一篇文章简单介绍了大图计算框架,并以pregrel为例进行了一定程度的分析。这次就来看两个具体的实现框架--graphX和pregrelix。在开始之前还是先来简单介绍一下大图计算框架的基本知识。
什么是大图计算?
- 许多实际计算机问题会涉及到大型图
- MapReduce不适合图处理
- 并行处理需要多次迭代,这导致MapReduce的迭代,影响到了整体的性能
图算法的挑战
- 每个顶点的所需的计算量非常少
- 在执行过程中改变并行程度
动机
- 替代选择
- 为每个新算法创建分布式基础架构
- 分布式计算系统
- 同级间的通信开销
- 单计算机图数据库
- 扩展性差
- 其他并行图计算系统
- 没有容错机制
- 需要一个可扩展的分布式解决方案
实例 -- graphX
大图计算任务的抽象
属性图数据模型
属性图转化为表
分离属性和结构
大图计算框架的API
图操作--Scala语言
包含顶点和边的三联运算
三联运算符连接顶点和边,如图所示
大图计算框架的系统架构
大图计算框架的基本数据操作
略
大图计算框架的流程生成
拓扑突变
- 集群应用程序所需
- 突变的排序:
- 删除发生在添加之前的突变,
- 删除顶点之前的边和添加顶点之前的边
- 通过用户定义的处理程序解决其余冲突
使用路由表连接站点选择
迭代mrTriplets的缓存
三元组视图的增量更新
迭代mrTriplets的聚合
大图计算框架的流程调度
实例 -- pregrelix
pregrelix 是 pregrel 的一种高效实现
Pregel的UDF
- 计算
- 在每个superstep的每个活动顶点执行
- 聚合
- 消息聚合函数
- 聚合
- 全局状态的聚合函数
- 分解
- 用于解决图形突变
- 计算
pregrelix系统
运行环境
总结
以上就是大图计算框架的基本理论知识、相应的知识结构以及具体的实现的例子,下次就开始介绍大数据存储的一些知识,敬请期待~