Pregel模型原理

一.图简介

图数据结构可以很好的展示关联关系,关联性计算是大数据计算核心,Pregel是一种基于BSP模型实现的并行图处理系统。主要用于图遍历(BFS)、最短路径(SSSP)、PageRank计算等等计算。

二.模型

2.1 简介

Pregel计算模型,输入是一个有向图,该有向图每个顶点(Vertex)是唯一,每个顶点都有属性,这些属性可以被修改,其初始值由用户定义,边也有属性,与顶点关联。

消息(Message),消息是Pregel计算模型的核心。每个 Vertex 在初始状态以及之后的每一个计算步骤当中都被 Attach 一个 Message 值作为 Vertex 当前的状态,算法的迭代通过 Vertex 之间互相发送的消息来完成。

超迭代(Superstep)。一个 Superstep 是 Pregel 在执行算法过程当中进行的一次迭代。 一次 Pregel 计算过程可能包括多个 Superstep。

2.2 Vertex

Pregel图计算过程与MapReduce非常接近:在迭代每一个步骤,将会以图的节点为中心进行Map操作,这意味Map函数当中我们只有以某一节点为中心的局部信息,包括:

  • 一个 Vertex 和它当前 Attach 的 Message
  • 当前 Vertex 向外指向的 Edge 和 Edge 上的属性
  • 当前 Vertex 在上一步计算当中所接收到的全部 Message

Vertex状态变化

当一个Vertex在上上一步当中没有接收到消息,或者算法自己决定不在向外发送消息,它可以被转变为Inactive。在 Pregel 的术语当中,这被称为 Vote to halt。

当一个在之前已经 Inactive 的 Vertex 又接受到一条新的消息,它会在新的计算中转变为 Active 的状态。

在大多数算法当中,所有的 Vertex 都进入 I

你可能感兴趣的:(那些年经历过的Spark)