Package org.apache.storm.hdfs.spout
Class DirLock
- java.lang.Object
-
- org.apache.storm.hdfs.spout.DirLock
-
public class DirLock extends Object
Facility to synchronize access to HDFS directory. The lock itself is represented as a file in the same directory. Relies on atomic file creation.
-
-
Field Summary
Fields Modifier and Type Field Description static String
DIR_LOCK_FILE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.hadoop.fs.Path
getLockFile()
void
release()
Release lock on dir by deleting the lock file.static DirLock
takeOwnershipIfStale(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path dirToLock, int lockTimeoutSec)
if the lock on the directory is stale, take ownership.static DirLock
tryLock(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path dir)
Get a lock on file if not already locked.
-
-
-
Field Detail
-
DIR_LOCK_FILE
public static final String DIR_LOCK_FILE
- See Also:
- Constant Field Values
-
-
Method Detail
-
tryLock
public static DirLock tryLock(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path dir) throws IOException
Get a lock on file if not already locked.- Parameters:
dir
- the dir on which to get a lock- Returns:
- The lock object if it the lock was acquired. Returns null if the dir is already locked.
- Throws:
IOException
- if there were errors
-
takeOwnershipIfStale
public static DirLock takeOwnershipIfStale(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path dirToLock, int lockTimeoutSec)
if the lock on the directory is stale, take ownership.
-
release
public void release() throws IOException
Release lock on dir by deleting the lock file.- Throws:
IOException
-
getLockFile
public org.apache.hadoop.fs.Path getLockFile()
-
-