与MapReduce的combiner类似。包括最短路径,双边匹配和PageRank等。以PageRank为例介绍一下Pregel的实现。各个worker通过一种类似MapReduce的Shuffle操作交换消息。Pregel的通信模式可以用RDD来描述,如图3。RDD,然后根据顶点ID分组,进行Shuffle通信(即cogroup操作)。OutgoingMessages))。(即mapValues和flatMap操作)。vertices一样。100行Scala代码在Spark上实现了一个类Pregel的API。MapReduce程序的性能。RDD来优化HaLoop,我们在Spark上实现了一个类似HaLoop的API,这个库只使用了200行Scala代码。例如数据库、RAMCloud[26]、Percolator[27]和Piccolo[28]。3总结了RDD的内部接口。例如,map产生窄依赖,而join则是宽依赖(除非父RDD被哈希分区)。Shuffle,这与MapReduce类似。