Class | Description |
---|---|
JobWithState | |
JobZNodeManager | |
WorkerWithState | |
ZKBarrierManager | |
ZKContext | |
ZKEphemStateManager | |
ZKEventsManager | |
ZKJobMasterFinder |
this class is used to discover the Job Master ip address and port number through ZooKeeper
JobMaster creates a znode at the ZooKeeper server
this class queries this node and retrieves the job master address from the content of that znode
When that znode can not be retrieved immediately,
it creates a NodeCache object and gets the value from this cache,
instead of querying continually
|
ZKJobMasterRegistrar |
it is a single node controller
A single node registers, others discover that node
In our case, Job Master registers, workers discover the job master
Job Master creates an eph persistent znode
Job Master IP and port number is put as the payload to this node in the form of:
<ip>:<port>
the node must be deleted after the job completes
|
ZKPersStateManager |
This class has methods to keep persistent status of a job in ZooKeeper servers
Parent znode (directory) has the job object as its body
One persistent child znode is created for each worker with workerID as its name
Each worker znode has WorkerInfo and the last WorkerState as its body
A separate persistent znode is created for job master.
|
ZKUtils |
this class provides methods to construct znode path names for jobs and workers
in addition, it provides methods to cleanup znodes on zookeeper server
|
ZKWorkerController |
we assume each worker is assigned a unique ID outside of this class.
|