GraphX中基于Pregel的单源最短路径详解
GraphX利用Spark这样一个并行处理框架实现了类似Pregel的图计算模型,该计算模型由以下三个主要部分:
- 节点消息处理的函数
vprog:(VertexId, VD, A) => VD
(节点Id, 节点属性, 消息) => 节点属性
节点发送消息的函数
sendMsg:EdgeTriplet[VD, ED] => Iterator[(VertexId, A)]
(边元组) => Iterator[(目标节点Id, 消息)]消息合并函数(功能类似于Hadoop中的combiner)
mergeMsg:(A, A) => A
(消息, 消息) => 消息
Pregel算法已经被集中抽象到GraphOps这个类中,下面就通过详解单源最短路径的例子来看看如何使用。
|
|