20210221

大数据 | 大数据基础--系统之大图计算框架实例

亲爱的读者朋友大家晚上好,上一篇文章简单介绍了大图计算框架,并以pregrel为例进行了一定程度的分析。这次就来看两个具体的实现框架--graphX和pregrelix。在开始之前还是先来简单介绍一下大图计算框架的基本知识。

什么是大图计算?

  • 许多实际计算机问题会涉及到大型图
  • MapReduce不适合图处理
    • 并行处理需要多次迭代,这导致MapReduce的迭代,影响到了整体的性能

图算法的挑战

  • 每个顶点的所需的计算量非常少
  • 在执行过程中改变并行程度

动机

  • 替代选择
    • 为每个新算法创建分布式基础架构
    • 分布式计算系统
      • 同级间的通信开销
    • 单计算机图数据库
      • 扩展性差
    • 其他并行图计算系统
      • 没有容错机制
  • 需要一个可扩展的分布式解决方案

实例 -- graphX

大图计算任务的抽象

属性图数据模型

1613920393321

属性图转化为表

1613920452499

分离属性和结构

1613920502430

大图计算框架的API

图操作--Scala语言

1613923399025

包含顶点和边的三联运算

三联运算符连接顶点和边,如图所示

1613923668122

大图计算框架的系统架构

1613924195785

大图计算框架的基本数据操作

大图计算框架的流程生成

拓扑突变

  • 集群应用程序所需
  • 突变的排序:
    • 删除发生在添加之前的突变,
    • 删除顶点之前的边和添加顶点之前的边
  • 通过用户定义的处理程序解决其余冲突

使用路由表连接站点选择

1613924708186

迭代mrTriplets的缓存

1613924756723

三元组视图的增量更新

1613924791059

迭代mrTriplets的聚合

1613924822333

大图计算框架的流程调度

1613924929653

实例 -- pregrelix

  • pregrelix 是 pregrel 的一种高效实现

  • Pregel的UDF

    • 计算
      • 在每个superstep的每个活动顶点执行
      • 聚合
      • 消息聚合函数
    • 聚合
      • 全局状态的聚合函数
    • 分解
      • 用于解决图形突变
  • pregrelix系统

    1613972036991
  • 运行环境

    1613972229763

总结

以上就是大图计算框架的基本理论知识、相应的知识结构以及具体的实现的例子,下次就开始介绍大数据存储的一些知识,敬请期待~