Giraph的工作人员在顶点接收消息时会做什么机制?

时间:2014-11-08 16:52:25

标签: java apache hadoop giraph

我很好奇,在Giraph的工作者API文档中,我看到了有关此方法的解释:

public void storeCheckpoint()
// Both the vertices and the messages need to be checkpointed in order for them to be used. 
// This is done after all messages have been delivered, but prior to a superstep starting.

我知道他们在compute()方法中使用了他们接受的消息,但他们何时收到?如果它在检查点流程之前,我可以看到文档/代码中的任何部分可以理解它吗?

此外,Giraph在超越S + 1之前使用什么机制来存储消息?它们是先将它存储在缓冲区或磁盘中吗?

我在Giraph文档中没有发现任何相关内容。

1 个答案:

答案 0 :(得分:1)

在批量超级步骤之后接收所有消息,这表示计算函数应在下一个超级步骤中执行哪个顶点或节点。这是Bulk Synchronous并行的过程。在此过程中,已经传递了meesage的顶点变为活动状态,并且在每个顶点上并行执行计算方法。这是超级步。现在这个过程重复进行,直到所有顶点都达到一个叫做投票停止的情况,这个停止使用apache zookeeper zk节点的投票,或者你可以说一个函数writeHaltInstrcutions(args,args)来暂停正在运行的进程。请记住,您需要storecheckpoint函数,因为有时会发生在Map执行100%并且没有reducer之后。该过程只是继续运行并且没有停止,因此对于这些情况,您需要具有检查点功能,以跟踪您已到达的检查点。我希望这会有所帮助。