GraphX pregel接口

来源:互联网 发布:多线程socket编程java 编辑:程序博客网 时间:2024/06/06 19:27
1.首先介绍一下以节点为中心的编程模型(Pregel)和GAS编程模型。
1.1以节点为中心的编程模型
     以节点为中心的编程模型(Vertex-Centered ProgrammingModel)首先由Pregel系统提出,之后的绝大多数离线挖掘累大规模图计算系统都是采用这个模型为编程模型。
     对于图G=(V,E)来说,以节点为中心的编程模型将图节点的vertex看做计算的中心,应用开发者可以自定义一个与具体应用密切相关的节点更新函数Function(vertex),这个函数可以获取并改变图节点vertex及与其有关联的边的权值,甚至可以公国增加和删除边来改变图结构。对于所有途中的节点斗志性节点更新函数Function(vertex)来对图的状态(包括节点信息和边信息)进行转换,如此反复迭代进行,直到达到一定的停止标准为止。典型的图节点更新函数Function(vertex)基本遵循如下逻辑:

     即首先从vertex的入边和出边收集消息,对这些信息经过针对节点权值的函数f变换后,将计算得到的值更新vertex的权值,之后以节点的新权值和边原先的权值作为输入;通过针对边的函数g()进行变换,变换后的值用来依次更新部分图状态的目的。
     以节点为中心的编程模型有很强的表达能力。研究表明,很多类型的问题都可以通过这个编程模型来进行表达,比如很多图挖掘,数据挖掘,机器学习甚至是线性代数的问题都可以以这种编程模型来获得解决。这也是为何以图节点为中心的编程模型流行的原因。
1.2GAS编程模型
     GAS模型可以看做是对以节点为中心的图计算编程模型的一种细粒度改造,通过将计算过程进一步细分来增加计算的并发性。GAS模型明确的将以节点为中心的图计算模型的节点更新函数Function(vertex)划分为三个连续的处理阶段:信息收集阶段(Gather),应用阶段(Apply)和分发阶段(Scatter)。通过这种明确的计算阶段划分,可以使原来的一个完整计算流程划分,这样在计算过程中可以讲各个子处理阶段并发执行来增加系统的并发处理性能。
     这里假设当前要进行计算的节点时u,以此为基础来说明GAS模型。在信息收集阶段,将u节点的所有邻接节点和相连的边上的信息通过一个累加函数收集起来:



通过以上三个阶段,可以定义以图节点为中心的高度抽象的GAS计算模型,在GAS模型中,节点的入边和出边在信息收集和分发阶段如何使用取决于具体的应用,比如在PageRank中,信息收集阶段只会考虑入边的信息,分发阶段只会考虑出边的信息,但是在类似FaceBook的社交关系图中,如果边表达的语义是朋友关系,那么信息收集和分发阶段则是所有的边的信息都会考虑在内。

2.Graphx 中的Pregel接口,并不严格遵循Pregel模式,他是一个参考GAS改进的Pregel模式。定义如下:

     这种基于MrTriplet方法的Pregel模式,与标准的Pregel的最大区别是,它的第二段参数体接受的是三个函数参数,而不是messageList。它不会在单个顶点上进行消息的遍历,而是将顶点的多个Ghost副本收到的消息聚合后,发送给Master副本,再使用vprog函数来更新顶点的值。消息的接受和发送都被自定并行化处理,无需担心超级节点的问题。常见的模板代码如下:

       在上方的函数中,mergeMsg是发生在vprog函数之前的。这样,我们可以自定义消息的合并熟顺序。例如,如果我们有两个list的消息,分别为List1(A1,A2,A3)和list2(B1,B2,B3)。我们可以在mergeMsg中先合并每一个list中的消息,这样master节点(vprog)函数将收到两个消息,在vprog中将再去将这两个消息合并。这种做法可以避免在mergeMsg阶段将list1和list2两个列表中的消息进行合并,从而实现自定义消息合并顺序。
       可以看到,GraphX设计这个模式的用意。它综合了Pregel和GAS两者的优点,即接口相对简单,又能保证性能,可以应对点分割的图存储模式,胜任符合幂率分布的自然图的大型计算。另外,值得注意的是,官方的Pregel版本是一个最简单的版本。对于复杂的业务场景,根据这个版本扩展一个定制的Pregel是一种很常见的用法。

参考文献:
1. 大数据图数据库之离线挖掘计算模型
2.Spark入门实战系列--9.Spark图计算GraphX介绍及实例
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑只有c盘了怎么办 美拍直播没人看怎么办 洛神花孕妇喝了怎么办 黑枸杞泡水褐色怎么办 红薯吃多了胃胀怎么办 在赌场掉了筹码怎么办? 到缅甸被绑架了怎么办 在淘宝不给退货怎么办 鞋上魔术贴坏了怎么办 手机支架不粘了怎么办 赌博把房子输了怎么办 当发现老公有外遇时怎么办 led灯带中间不亮怎么办 飘窗的天花板凸怎么办 一受委屈就爱哭怎么办 6岁儿童叛逆期怎么办 孩子高一了厌学怎么办 除上有肥胖纹怎么办 6岁不爱写作业怎么办 初中孩子不爱写作业怎么办 孩子上课走神写作业慢怎么办 孩子作业写得慢怎么办 4岁宝宝不写作业怎么办 小孩作业写得慢怎么办 3岁宝宝不写作业怎么办 小孩不写作业怎么办呀 作业没写完的人怎么办? 孩子不写作业家长该怎么办 做作业做得慢怎么办 高一作业写得慢怎么办 孩子做作业不认真怎么办 孩子不主动做作业怎么办 写作业静不下心怎么办 小孩不写作业怎么办啊 小孩子写作业爱磨蹭怎么办 孩子在学校不写作业怎么办 鳗鱼刺卡在喉咙怎么办 被小鱼刺卡住了怎么办 喉咙上卡了鱼刺怎么办 跟团出去受伤了怎么办 平安易宝冻结了怎么办