public class ZNodeClearer extends Object
Contains a set of methods for the collaboration between the start/stop scripts and the servers. It allows to delete immediately the znode when the master or the regions server crashes. The region server / master writes a specific file when it starts / becomes main master. When they end properly, they delete the file.
In the script, we check for the existence of these files when the program ends. If they still exist we conclude that the server crashed, likely without deleting their znode. To have a faster recovery we delete immediately the znode.
The strategy depends on the server type. For a region server we store the znode path in the file, and use it to delete it. for a master, as the znode path constant whatever the server, we check its content to make sure that the backup server is not now in charge.
Modifier and Type | Field and Description |
---|---|
static Log |
LOG |
Modifier and Type | Method and Description |
---|---|
static boolean |
clear(Configuration conf)
Delete the master znode if its content (ServerName string) is the same
as the one in the znode file.
|
static void |
deleteMyEphemeralNodeOnDisk()
delete the znode file
|
static String |
getMyEphemeralNodeFileName()
Get the name of the file used to store the znode contents
|
static String |
readMyEphemeralNodeOnDisk()
read the content of znode file, expects a single line.
|
static void |
writeMyEphemeralNodeOnDisk(String fileContent)
Logs the errors without failing on exception.
|
public static void writeMyEphemeralNodeOnDisk(String fileContent)
public static String readMyEphemeralNodeOnDisk() throws IOException
IOException
public static String getMyEphemeralNodeFileName()
public static void deleteMyEphemeralNodeOnDisk()
public static boolean clear(Configuration conf)