public class HdfsDirectory extends BaseDirectory
Modifier and Type | Class and Description |
---|---|
static class |
HdfsDirectory.HdfsIndexInput |
Modifier and Type | Field and Description |
---|---|
protected Configuration |
configuration |
static int |
DEFAULT_BUFFER_SIZE |
protected Path |
hdfsDirPath |
isOpen, lockFactory
Constructor and Description |
---|
HdfsDirectory(Path hdfsDirPath,
Configuration configuration) |
HdfsDirectory(Path hdfsDirPath,
LockFactory lockFactory,
Configuration configuration,
int bufferSize) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the store.
|
IndexOutput |
createOutput(String name,
IOContext context)
Creates a new, empty file in the directory with the given name.
|
IndexOutput |
createTempOutput(String prefix,
String suffix,
IOContext context)
Creates a new, empty file for writing in the directory, with a
temporary file name including prefix and suffix, ending with the
reserved extension
.tmp . |
void |
deleteFile(String name)
Removes an existing file in the directory.
|
boolean |
equals(Object obj) |
long |
fileLength(String name)
Returns the length of a file in the directory.
|
long |
fileModified(String name) |
Configuration |
getConfiguration() |
FileSystem |
getFileSystem() |
Path |
getHdfsDirPath() |
int |
hashCode() |
boolean |
isClosed()
Check whether this directory is open or closed.
|
String[] |
listAll()
Returns an array of strings, one for each entry in the directory, in sorted (UTF16, java's String.compare) order.
|
IndexInput |
openInput(String name,
IOContext context)
Returns a stream reading an existing file.
|
void |
rename(String source,
String dest)
Renames
source to dest as an atomic operation,
where dest does not yet exist in the directory. |
void |
sync(Collection<String> names)
Ensure that any writes to these files are moved to
stable storage.
|
void |
syncMetaData()
Ensure that directory metadata, such as recent file renames, are made
durable.
|
String |
toString() |
ensureOpen, obtainLock
copyFrom, openChecksumInput, renameFile
public static final int DEFAULT_BUFFER_SIZE
protected final Path hdfsDirPath
protected final Configuration configuration
public HdfsDirectory(Path hdfsDirPath, Configuration configuration) throws IOException
IOException
public HdfsDirectory(Path hdfsDirPath, LockFactory lockFactory, Configuration configuration, int bufferSize) throws IOException
IOException
public void close() throws IOException
Directory
close
in interface Closeable
close
in interface AutoCloseable
close
in class Directory
IOException
public boolean isClosed()
public IndexOutput createOutput(String name, IOContext context) throws IOException
Directory
createOutput
in class Directory
IOException
public IndexOutput createTempOutput(String prefix, String suffix, IOContext context) throws IOException
Directory
.tmp
. Use
IndexOutput.getName()
to see what name was used.createTempOutput
in class Directory
IOException
public IndexInput openInput(String name, IOContext context) throws IOException
Directory
Throws FileNotFoundException
or NoSuchFileException
if the file does not exist.
openInput
in class Directory
IOException
public void deleteFile(String name) throws IOException
Directory
deleteFile
in class Directory
IOException
public void rename(String source, String dest) throws IOException
Directory
source
to dest
as an atomic operation,
where dest
does not yet exist in the directory.
Notes: This method is used by IndexWriter to publish commits.
It is ok if this operation is not truly atomic, for example
both source
and dest
can be visible temporarily.
It is just important that the contents of dest
appear
atomically, or an exception is thrown.
rename
in class Directory
IOException
public void syncMetaData() throws IOException
Directory
syncMetaData
in class Directory
IOException
public long fileLength(String name) throws IOException
Directory
FileNotFoundException
or NoSuchFileException
if the file does not exist.
fileLength
in class Directory
name
- the name of the file for which to return the length.IOException
- if there was an IO error while retrieving the file's
length.public long fileModified(String name) throws IOException
IOException
public String[] listAll() throws IOException
Directory
listAll
in class Directory
IOException
- in case of IO errorpublic Path getHdfsDirPath()
public FileSystem getFileSystem()
public Configuration getConfiguration()
public void sync(Collection<String> names) throws IOException
Directory
sync
in class Directory
IOException
public String toString()
toString
in class BaseDirectory