public final class ZKUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.util.logging.Logger |
LOG |
Modifier and Type | Method and Description |
---|---|
static byte[] |
addTwoByteArrays(byte[] byteArray1,
byte[] byteArray2)
add two byte arrays
like appending the second one to first one, but in a new array
|
static CuratorFramework |
connectToServer(Config config)
connect to ZooKeeper server
|
static java.lang.String |
constructBarrierPath(Config config,
java.lang.String jobName)
construct a distributed barrier path
|
static java.lang.String |
constructDaiPathForBarrier(Config config,
java.lang.String jobName)
construct a distributed atomic integer path for barrier
|
static java.lang.String |
constructDaiPathForWorkerID(Config config,
java.lang.String jobName)
construct a distributed atomic integer path for assigning worker ids
|
static java.lang.String |
constructJobLockPath(Config config,
java.lang.String jobName)
construct a job distributed lock path from the given job name
|
static java.lang.String |
constructJobMasterPath(Config config)
construct a worker path from the given job path and worker network info
|
static java.lang.String |
constructJobPath(Config config,
java.lang.String jobName)
construct a job path from the given job name
|
static java.lang.String |
constructWorkerPath(java.lang.String jobPath,
java.lang.String workerHostAndPort)
construct a worker path from the given job path and worker network info
|
static PersistentNode |
createPersistentEphemeralZnode(CuratorFramework client,
java.lang.String path,
byte[] payload)
create a PersistentNode object in the given path
it is ephemeral and persistent
it will be deleted after the worker leaves or fails
it will be persistent for occasional network problems
|
static PersistentNode |
createPersistentZnode(CuratorFramework client,
java.lang.String path,
byte[] payload)
create a PersistentNode object in the given path
it needs to be deleted explicitly, not ephemeral
it will be persistent for occasional network problems
|
static java.util.List<JobMasterAPI.WorkerInfo> |
decodeWorkerInfos(byte[] encodedBytes)
decode the given binary encoded WorkerInfo object list
encoding assumed to be dones by encodeWorkerInfo method
length of each WorkerInfo object is encoded before the WorkerInfo object bytes
|
static boolean |
deleteJobZNodes(Config config,
CuratorFramework client,
java.lang.String jobName)
delete job related znode from previous sessions
|
static byte[] |
encodeWorkerInfo(JobMasterAPI.WorkerInfo workerInfo)
encode the given WorkerInfo object as a byte array.
|
static int |
intFromBytes(byte[] byteArray,
int startIndex)
construct an int from four bytes starting at the given index
|
static boolean |
isThereAnActiveJob(java.lang.String jobName,
Config config)
check whether there is an active job
if not, but there are znodes from previous sessions, those will be deleted
|
static boolean |
terminateJob(java.lang.String jobName,
Config config)
delete all znodes related to the given jobName
|
public static CuratorFramework connectToServer(Config config)
config
- public static boolean isThereAnActiveJob(java.lang.String jobName, Config config)
jobName
- public static java.lang.String constructJobPath(Config config, java.lang.String jobName)
jobName
- public static java.lang.String constructDaiPathForWorkerID(Config config, java.lang.String jobName)
jobName
- public static java.lang.String constructDaiPathForBarrier(Config config, java.lang.String jobName)
jobName
- public static java.lang.String constructBarrierPath(Config config, java.lang.String jobName)
jobName
- public static java.lang.String constructJobLockPath(Config config, java.lang.String jobName)
jobName
- public static java.lang.String constructWorkerPath(java.lang.String jobPath, java.lang.String workerHostAndPort)
public static java.lang.String constructJobMasterPath(Config config)
public static boolean deleteJobZNodes(Config config, CuratorFramework client, java.lang.String jobName)
jobName
- public static boolean terminateJob(java.lang.String jobName, Config config)
jobName
- public static PersistentNode createPersistentEphemeralZnode(CuratorFramework client, java.lang.String path, byte[] payload)
path
- payload
- java.lang.Exception
public static PersistentNode createPersistentZnode(CuratorFramework client, java.lang.String path, byte[] payload)
path
- payload
- java.lang.Exception
public static java.util.List<JobMasterAPI.WorkerInfo> decodeWorkerInfos(byte[] encodedBytes)
public static byte[] encodeWorkerInfo(JobMasterAPI.WorkerInfo workerInfo)
public static byte[] addTwoByteArrays(byte[] byteArray1, byte[] byteArray2)
byteArray1
- byteArray2
- public static int intFromBytes(byte[] byteArray, int startIndex)
byteArray
- startIndex
-