Giraph源码分析(四)—— Master 如何检查Worker启动成功
本文的目的 说明Giraph如何借助ZooKeeper来实现Master与Workers间的同步(不太确定)。 环境 在单机上(机器名:giraphx)启动了2个workers。 Giraph遵从单Master多Workers结构,BSPServiceMaster使用MasterThread线程来进行全局的同步。每个Worker启动成功后,会向Master汇报自身的健康状况,那么Master是如何检测Workers是否都成功启动了? Master在ZooKeeper上创两个目录,_workerHealthyDir和 _workerUnhealthyDir,分别用来记录Healthy Workers和UnHealthy Workers。 主要在BspServiceMaster类中的getAllWorkerInfos()方法来完成,其调用关系如下,注意下getAllWorkerInfos()到MasterThread.run()方法调用关系,比较难找。 创建的两个目录如下: /_hadoopBsp/job_201404102333_0002/_applicationAttemptsDir/...





