@ThreadSafe public class BaseFileSystem extends Object implements FileSystem
FileSystem
interface. Developers can extend this class
instead of implementing the interface. This implementation reads and writes data through
FileInStream
and FileOutStream
. This class is thread safe.FileSystem.Cache, FileSystem.Factory, FileSystem.FileSystemKey
Modifier and Type | Field and Description |
---|---|
protected AlluxioBlockStore |
mBlockStore |
protected boolean |
mCachingEnabled |
protected boolean |
mClosed |
protected FileSystemContext |
mFsContext |
Modifier | Constructor and Description |
---|---|
protected |
BaseFileSystem(FileSystemContext fsContext,
boolean cachingEnabled)
Constructs a new base file system.
|
Modifier and Type | Method and Description |
---|---|
protected void |
checkUri(AlluxioURI uri)
Checks an
AlluxioURI for scheme and authority information. |
void |
close()
Shuts down the FileSystem.
|
static BaseFileSystem |
create(FileSystemContext context) |
static BaseFileSystem |
create(FileSystemContext context,
boolean cachingEnabled) |
void |
createDirectory(AlluxioURI path)
Convenience method for
FileSystem.createDirectory(AlluxioURI, CreateDirectoryPOptions) with
default options. |
void |
createDirectory(AlluxioURI path,
CreateDirectoryPOptions options)
Creates a directory.
|
FileOutStream |
createFile(AlluxioURI path)
Convenience method for
FileSystem.createFile(AlluxioURI, CreateFilePOptions) with default
options. |
FileOutStream |
createFile(AlluxioURI path,
CreateFilePOptions options)
Creates a file.
|
void |
delete(AlluxioURI path)
Convenience method for
FileSystem.delete(AlluxioURI, DeletePOptions) with default options. |
void |
delete(AlluxioURI path,
DeletePOptions options)
Deletes a file or a directory.
|
boolean |
exists(AlluxioURI path)
Convenience method for
FileSystem.exists(AlluxioURI, ExistsPOptions) with default options. |
boolean |
exists(AlluxioURI path,
ExistsPOptions options)
Checks whether a path exists in Alluxio space.
|
void |
free(AlluxioURI path)
Convenience method for
FileSystem.free(AlluxioURI, FreePOptions) with default options. |
void |
free(AlluxioURI path,
FreePOptions options)
Evicts any data under the given path from Alluxio space, but does not delete the data from the
UFS.
|
List<BlockLocationInfo> |
getBlockLocations(AlluxioURI path)
Builds a list of
BlockLocationInfo for the given file. |
AlluxioConfiguration |
getConf() |
Map<String,MountPointInfo> |
getMountTable()
Lists all mount points and their corresponding under storage addresses.
|
URIStatus |
getStatus(AlluxioURI path)
Convenience method for
FileSystem.getStatus(AlluxioURI, GetStatusPOptions) with default options. |
URIStatus |
getStatus(AlluxioURI path,
GetStatusPOptions options)
Gets the
URIStatus object that represents the metadata of an Alluxio path. |
List<SyncPointInfo> |
getSyncPathList()
Lists all the actively synced paths.
|
boolean |
isClosed()
If there are operations currently running and close is called concurrently the behavior is
undefined.
|
List<URIStatus> |
listStatus(AlluxioURI path)
Convenience method for
FileSystem.listStatus(AlluxioURI, ListStatusPOptions) with default
options. |
List<URIStatus> |
listStatus(AlluxioURI path,
ListStatusPOptions options)
If the path is a directory, returns the
URIStatus of all the direct entries in it. |
void |
mount(AlluxioURI alluxioPath,
AlluxioURI ufsPath)
Convenience method for
FileSystem.mount(AlluxioURI, AlluxioURI, MountPOptions) with default
options. |
void |
mount(AlluxioURI alluxioPath,
AlluxioURI ufsPath,
MountPOptions options)
Mounts a UFS subtree to the given Alluxio path.
|
FileInStream |
openFile(AlluxioURI path)
Convenience method for
FileSystem.openFile(AlluxioURI, OpenFilePOptions) with default options. |
FileInStream |
openFile(AlluxioURI path,
OpenFilePOptions options)
Opens a file for reading.
|
void |
persist(AlluxioURI path)
Convenience method for
FileSystem.persist(AlluxioURI, ScheduleAsyncPersistencePOptions) which
uses the default ScheduleAsyncPersistencePOptions . |
void |
persist(AlluxioURI path,
ScheduleAsyncPersistencePOptions options)
Schedules the given path to be asynchronously persisted to the under file system.
|
void |
rename(AlluxioURI src,
AlluxioURI dst)
Convenience method for
FileSystem.rename(AlluxioURI, AlluxioURI, RenamePOptions) with default
options. |
void |
rename(AlluxioURI src,
AlluxioURI dst,
RenamePOptions options)
Renames an existing Alluxio path to another Alluxio path in Alluxio.
|
AlluxioURI |
reverseResolve(AlluxioURI ufsUri)
Reverse resolve a ufs uri.
|
void |
setAcl(AlluxioURI path,
SetAclAction action,
List<AclEntry> entries)
Convenience method for
FileSystem.setAcl(AlluxioURI, SetAclAction, List, SetAclPOptions) with
default options. |
void |
setAcl(AlluxioURI path,
SetAclAction action,
List<AclEntry> entries,
SetAclPOptions options)
Sets the ACL for a path.
|
void |
setAttribute(AlluxioURI path)
Convenience method for
FileSystem.setAttribute(AlluxioURI, SetAttributePOptions) with default
options. |
void |
setAttribute(AlluxioURI path,
SetAttributePOptions options)
Sets any number of a path's attributes, such as TTL and pin status.
|
void |
startSync(AlluxioURI path)
Starts the active syncing process on an Alluxio path.
|
void |
stopSync(AlluxioURI path)
Stops the active syncing process on an Alluxio path.
|
void |
unmount(AlluxioURI path)
Convenience method for
FileSystem.unmount(AlluxioURI, UnmountPOptions) with default options. |
void |
unmount(AlluxioURI path,
UnmountPOptions options)
Unmounts a UFS subtree identified by the given Alluxio path.
|
void |
updateMount(AlluxioURI alluxioPath,
MountPOptions options)
Updates the options for an existing mount point.
|
protected final FileSystemContext mFsContext
protected final AlluxioBlockStore mBlockStore
protected final boolean mCachingEnabled
protected volatile boolean mClosed
protected BaseFileSystem(FileSystemContext fsContext, boolean cachingEnabled)
fsContext
- file system contextpublic static BaseFileSystem create(FileSystemContext context)
context
- the FileSystemContext
to use for client operationsBaseFileSystem
public static BaseFileSystem create(FileSystemContext context, boolean cachingEnabled)
context
- the FileSystemContext
to use for client operationscachingEnabled
- whether or not this FileSystem should remove itself from the
Factory
cache when closedBaseFileSystem
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
public boolean isClosed()
FileSystem
isClosed
in interface FileSystem
public void createDirectory(AlluxioURI path) throws FileAlreadyExistsException, InvalidPathException, IOException, AlluxioException
FileSystem
FileSystem.createDirectory(AlluxioURI, CreateDirectoryPOptions)
with
default options.createDirectory
in interface FileSystem
path
- the path of the directory to create in Alluxio spaceFileAlreadyExistsException
- if there is already a file or directory at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public void createDirectory(AlluxioURI path, CreateDirectoryPOptions options) throws FileAlreadyExistsException, InvalidPathException, IOException, AlluxioException
FileSystem
createDirectory
in interface FileSystem
path
- the path of the directory to create in Alluxio spaceoptions
- options to associate with this operationFileAlreadyExistsException
- if there is already a file or directory at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public FileOutStream createFile(AlluxioURI path) throws FileAlreadyExistsException, InvalidPathException, IOException, AlluxioException
FileSystem
FileSystem.createFile(AlluxioURI, CreateFilePOptions)
with default
options.createFile
in interface FileSystem
path
- the path of the file to create in Alluxio spaceFileOutStream
which will write data to the newly created fileFileAlreadyExistsException
- if there is already a file at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public FileOutStream createFile(AlluxioURI path, CreateFilePOptions options) throws FileAlreadyExistsException, InvalidPathException, IOException, AlluxioException
FileSystem
createFile
in interface FileSystem
path
- the path of the file to create in Alluxio spaceoptions
- options to associate with this operationFileOutStream
which will write data to the newly created fileFileAlreadyExistsException
- if there is already a file at the given pathInvalidPathException
- if the path is invalidIOException
AlluxioException
public void delete(AlluxioURI path) throws DirectoryNotEmptyException, FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.delete(AlluxioURI, DeletePOptions)
with default options.delete
in interface FileSystem
path
- the path to delete in Alluxio spaceDirectoryNotEmptyException
- if recursive is false and the path is a nonempty directoryFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public void delete(AlluxioURI path, DeletePOptions options) throws DirectoryNotEmptyException, FileDoesNotExistException, IOException, AlluxioException
FileSystem
delete
in interface FileSystem
path
- the path to delete in Alluxio spaceoptions
- options to associate with this operationDirectoryNotEmptyException
- if recursive is false and the path is a nonempty directoryFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public boolean exists(AlluxioURI path) throws InvalidPathException, IOException, AlluxioException
FileSystem
FileSystem.exists(AlluxioURI, ExistsPOptions)
with default options.exists
in interface FileSystem
path
- the path in questionInvalidPathException
- if the path is invalidIOException
AlluxioException
public boolean exists(AlluxioURI path, ExistsPOptions options) throws IOException, AlluxioException
FileSystem
exists
in interface FileSystem
path
- the path in questionoptions
- options to associate with this operationInvalidPathException
- if the path is invalidIOException
AlluxioException
public void free(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.free(AlluxioURI, FreePOptions)
with default options.free
in interface FileSystem
path
- the path to free in Alluxio spaceFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public void free(AlluxioURI path, FreePOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
free
in interface FileSystem
path
- the path to free in Alluxio spaceoptions
- options to associate with this operationFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public List<BlockLocationInfo> getBlockLocations(AlluxioURI path) throws IOException, AlluxioException
FileSystem
BlockLocationInfo
for the given file. Each list item contains a list
of WorkerNetAddress
which allows a user to determine the physical location of a block
of the given file stored within Alluxio. In the case where data is stored in a UFS, but not in
Alluxio this function will only include a WorkerNetAddress
if the block stored in the
UFS is co-located with an Alluxio worker.
However if there are no co-located Alluxio workers for the block, then the behavior is
controlled by the PropertyKey.USER_UFS_BLOCK_LOCATION_ALL_FALLBACK_ENABLED
. If
this property is set to true
then every Alluxio worker will be returned.
Blocks which are stored in the UFS and are *not* co-located with any Alluxio worker will return
an empty list. If the file block is within Alluxio *and* the UFS then this will only return
Alluxio workers which currently store the block.getBlockLocations
in interface FileSystem
path
- the path to get block info forFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public AlluxioConfiguration getConf()
getConf
in interface FileSystem
public URIStatus getStatus(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.getStatus(AlluxioURI, GetStatusPOptions)
with default options.getStatus
in interface FileSystem
path
- the path to obtain information aboutURIStatus
of the fileFileDoesNotExistException
- if the path does not existIOException
AlluxioException
public URIStatus getStatus(AlluxioURI path, GetStatusPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
object that represents the metadata of an Alluxio path.getStatus
in interface FileSystem
path
- the path to obtain information aboutoptions
- options to associate with this operationURIStatus
of the fileFileDoesNotExistException
- if the path does not existIOException
AlluxioException
public List<URIStatus> listStatus(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.listStatus(AlluxioURI, ListStatusPOptions)
with default
options.listStatus
in interface FileSystem
path
- the path to list information aboutURIStatus
s containing information about the files and directories
which are children of the given pathFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public List<URIStatus> listStatus(AlluxioURI path, ListStatusPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
of all the direct entries in it.
Otherwise returns a list with a single URIStatus
element for the file.listStatus
in interface FileSystem
path
- the path to list information aboutoptions
- options to associate with this operationURIStatus
s containing information about the files and directories
which are children of the given pathFileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public void mount(AlluxioURI alluxioPath, AlluxioURI ufsPath) throws IOException, AlluxioException
FileSystem
FileSystem.mount(AlluxioURI, AlluxioURI, MountPOptions)
with default
options.mount
in interface FileSystem
alluxioPath
- an Alluxio path to mount the data toufsPath
- a UFS path to mount the data fromIOException
AlluxioException
public void mount(AlluxioURI alluxioPath, AlluxioURI ufsPath, MountPOptions options) throws IOException, AlluxioException
FileSystem
AlluxioException
will be thrown.
This method does not transfer any data or metadata from the UFS. It simply establishes the
connection between the given Alluxio path and UFS path.mount
in interface FileSystem
alluxioPath
- an Alluxio path to mount the data toufsPath
- a UFS path to mount the data fromoptions
- options to associate with this operationIOException
AlluxioException
public void updateMount(AlluxioURI alluxioPath, MountPOptions options) throws IOException, AlluxioException
FileSystem
updateMount
in interface FileSystem
alluxioPath
- the Alluxio path of the mount pointoptions
- options for this mount pointIOException
AlluxioException
public Map<String,MountPointInfo> getMountTable() throws IOException, AlluxioException
FileSystem
getMountTable
in interface FileSystem
MountPointInfo
IOException
AlluxioException
public List<SyncPointInfo> getSyncPathList() throws IOException, AlluxioException
FileSystem
getSyncPathList
in interface FileSystem
IOException
AlluxioException
public void persist(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.persist(AlluxioURI, ScheduleAsyncPersistencePOptions)
which
uses the default ScheduleAsyncPersistencePOptions
.persist
in interface FileSystem
path
- the uri of the file to persistFileDoesNotExistException
IOException
AlluxioException
public void persist(AlluxioURI path, ScheduleAsyncPersistencePOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystemUtils.persistAndWait(FileSystem, AlluxioURI, long)
.persist
in interface FileSystem
path
- the uri of the file to persistoptions
- the options to use when submitting persist the pathFileDoesNotExistException
IOException
AlluxioException
public FileInStream openFile(AlluxioURI path) throws FileDoesNotExistException, OpenDirectoryException, FileIncompleteException, IOException, AlluxioException
FileSystem
FileSystem.openFile(AlluxioURI, OpenFilePOptions)
with default options.openFile
in interface FileSystem
path
- the file to read fromFileInStream
for the given pathFileDoesNotExistException
- when path does not existOpenDirectoryException
- when path is a directoryFileIncompleteException
- when path is a file and is not completed yetIOException
AlluxioException
public FileInStream openFile(AlluxioURI path, OpenFilePOptions options) throws FileDoesNotExistException, OpenDirectoryException, FileIncompleteException, IOException, AlluxioException
FileSystem
openFile
in interface FileSystem
path
- the file to read fromoptions
- options to associate with this operationFileInStream
for the given pathFileDoesNotExistException
- when path does not existOpenDirectoryException
- when path is a directoryFileIncompleteException
- when path is a file and is not completed yetIOException
AlluxioException
public void rename(AlluxioURI src, AlluxioURI dst) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.rename(AlluxioURI, AlluxioURI, RenamePOptions)
with default
options.rename
in interface FileSystem
src
- the path of the source, this must already existdst
- the path of the destination, this path should not existFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public void rename(AlluxioURI src, AlluxioURI dst, RenamePOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
rename
in interface FileSystem
src
- the path of the source, this must already existdst
- the path of the destination, this path should not existoptions
- options to associate with this operationFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public AlluxioURI reverseResolve(AlluxioURI ufsUri) throws IOException, AlluxioException
FileSystem
reverseResolve
in interface FileSystem
ufsUri
- the ufs uriAlluxioStatusException
IOException
AlluxioException
public void setAcl(AlluxioURI path, SetAclAction action, List<AclEntry> entries) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.setAcl(AlluxioURI, SetAclAction, List, SetAclPOptions)
with
default options.setAcl
in interface FileSystem
path
- the path to set the ACL foraction
- the set action to performentries
- the ACL entriesFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public void setAcl(AlluxioURI path, SetAclAction action, List<AclEntry> entries, SetAclPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
setAcl
in interface FileSystem
path
- the path to set the ACL foraction
- the set action to performentries
- the ACL entriesoptions
- options to associate with this operationFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public void setAttribute(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
FileSystem.setAttribute(AlluxioURI, SetAttributePOptions)
with default
options.setAttribute
in interface FileSystem
path
- the path to set attributes forFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public void setAttribute(AlluxioURI path, SetAttributePOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
setAttribute
in interface FileSystem
path
- the path to set attributes foroptions
- options to associate with this operationFileDoesNotExistException
- if the given file does not existIOException
AlluxioException
public void startSync(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
startSync
in interface FileSystem
path
- the path to syncFileDoesNotExistException
IOException
AlluxioException
public void stopSync(AlluxioURI path) throws FileDoesNotExistException, IOException, AlluxioException
stopSync
in interface FileSystem
path
- the path to stop syncingFileDoesNotExistException
IOException
AlluxioException
public void unmount(AlluxioURI path) throws IOException, AlluxioException
FileSystem
FileSystem.unmount(AlluxioURI, UnmountPOptions)
with default options.unmount
in interface FileSystem
path
- an Alluxio path, this must be a mount pointIOException
AlluxioException
public void unmount(AlluxioURI path, UnmountPOptions options) throws IOException, AlluxioException
FileSystem
unmount
in interface FileSystem
path
- an Alluxio path, this must be a mount pointoptions
- options to associate with this operationIOException
AlluxioException
protected void checkUri(AlluxioURI uri)
AlluxioURI
for scheme and authority information. Warn the user and throw an
exception if necessary.Copyright © 2023. All Rights Reserved.