Giraph 源码分析(五)—— 加载数据+同步总结
作者|白松 关于Giraph 共有九个章节,本文第五个章节。 环境:在单机上(机器名:giraphx)启动了2个workers。 输入:SSSP文件夹,里面有1.txt和2.txt两个文件。 1、在Worker向Master汇报健康状况后,就开始等待Master创建InputSplit。 方法:每个Worker通过检某个Znode节点是否存在,同时在此Znode上设置Watcher。若不存在,就通过BSPEvent的waitForever()方法释放当前线程的锁,陷入等待状态。一直等到master创建该znode。此步骤位于BSPServiceWorker类中的startSuperStep方法中,等待代码如下: 2、Master调用createInputSplits()方法创建InputSplit。 在generateInputSplits()方法中,根据用户设定的VertexInputFormat获得InputSplits。代码如下: 其中minSplitCountHint为创建split的最小数目,其值如下: minSplitCountHint = Workers数目 * NUM_...