@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.Factory
Modifier and Type | Field and Description |
---|---|
protected AlluxioBlockStore |
mBlockStore |
protected boolean |
mClosed |
protected FileSystemContext |
mFsContext |
Constructor and Description |
---|
BaseFileSystem(FileSystemContext fsContext)
Constructs a new base file system.
|
Modifier and Type | Method and Description |
---|---|
void |
checkAccess(AlluxioURI path,
CheckAccessPOptions options)
Checks access to a path.
|
protected void |
checkUri(AlluxioURI uri)
Checks an
AlluxioURI for scheme and authority information. |
void |
close()
Shuts down the FileSystem.
|
void |
createDirectory(AlluxioURI path,
CreateDirectoryPOptions options)
Creates a directory.
|
FileOutStream |
createFile(AlluxioURI path,
CreateFilePOptions options)
Creates a file.
|
void |
delete(AlluxioURI path,
DeletePOptions options)
Deletes a file or a directory.
|
boolean |
exists(AlluxioURI path,
ExistsPOptions options)
Checks whether a path exists in Alluxio space.
|
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,
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.
|
void |
iterateStatus(AlluxioURI path,
ListStatusPOptions options,
java.util.function.Consumer<? super URIStatus> action)
Performs a specific action on each
URIStatus in the result of FileSystem.listStatus(alluxio.AlluxioURI) . |
List<URIStatus> |
listStatus(AlluxioURI path,
ListStatusPOptions options)
If the path is a directory, returns the
URIStatus of all the direct entries in it. |
void |
loadMetadata(AlluxioURI path,
ListStatusPOptions options)
Loads metadata about a path in the UFS to Alluxio.
|
void |
mount(AlluxioURI alluxioPath,
AlluxioURI ufsPath,
MountPOptions options)
Mounts a UFS subtree to the given Alluxio path.
|
FileInStream |
openFile(AlluxioURI path,
OpenFilePOptions options)
Opens a file for reading.
|
FileInStream |
openFile(URIStatus status,
OpenFilePOptions options)
Opens a file for reading.
|
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,
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,
SetAclPOptions options)
Sets the ACL for a path.
|
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,
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createDirectory, createFile, delete, exists, free, getStatus, iterateStatus, listStatus, loadMetadata, mount, openFile, persist, rename, setAcl, setAttribute, unmount
protected final FileSystemContext mFsContext
protected final AlluxioBlockStore mBlockStore
protected volatile boolean mClosed
public BaseFileSystem(FileSystemContext fsContext)
fsContext
- file system contextpublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
public boolean isClosed()
FileSystem
isClosed
in interface FileSystem
public void checkAccess(AlluxioURI path, CheckAccessPOptions options) throws InvalidPathException, IOException, AlluxioException
FileSystem
checkAccess
in interface FileSystem
path
- the path of the directory to create in Alluxio spaceoptions
- options to associate with this operationInvalidPathException
- if the path is invalidAccessControlException
- if the access is deniedIOException
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, 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, 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, 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, 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, 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, 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 iterateStatus(AlluxioURI path, ListStatusPOptions options, java.util.function.Consumer<? super URIStatus> action) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
URIStatus
in the result of FileSystem.listStatus(alluxio.AlluxioURI)
.
This method is preferred when iterating over directories with a large number of files or
sub-directories inside. The caller can proceed with partial result without waiting for all
result returned.iterateStatus
in interface FileSystem
path
- the path to list information aboutoptions
- options to associate with this operationaction
- action to apply on each URIStatus
FileDoesNotExistException
- if the given path does not existIOException
AlluxioException
public void loadMetadata(AlluxioURI path, ListStatusPOptions options) throws FileDoesNotExistException, IOException, AlluxioException
FileSystem
loadMetadata
in interface FileSystem
path
- the path for which to load metadata from UFSoptions
- options to associate with this operationFileDoesNotExistException
- if the given path does not existIOException
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, 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, 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 FileInStream openFile(URIStatus status, OpenFilePOptions options) throws FileDoesNotExistException, OpenDirectoryException, FileIncompleteException, IOException, AlluxioException
FileSystem
openFile
in interface FileSystem
status
- status of 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, 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, 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, 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, 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.