@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 BlockStoreClient |
mBlockStore |
protected boolean |
mClosed |
protected FileSystemContext |
mFsContext |
protected static Error |
UNREACHABLE_CODE_ERROR |
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(URIStatus status)
Builds a list of
BlockLocationInfo for the given file. |
AlluxioConfiguration |
getConf() |
FileSystemContext |
getFileSystemContext() |
String |
getJobProgress(JobDescription jobDescription,
JobProgressReportFormat format,
boolean verbose)
Get progress of a job.
|
Map<String,MountPointInfo> |
getMountTable(boolean checkUfs)
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. |
ListStatusPartialResult |
listStatusPartial(AlluxioURI path,
ListStatusPartialPOptions options)
Same as
FileSystem.listStatus(AlluxioURI, ListStatusPOptions) except may
only return a subset of the results as determined by the options parameter. |
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.
|
void |
needsSync(AlluxioURI path)
Marks the path in Alluxio as needing sync with the UFS.
|
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.
|
boolean |
stopJob(JobDescription jobDescription)
Stop a job in scheduler.
|
void |
stopSync(AlluxioURI path)
Stops the active syncing process on an Alluxio path.
|
Optional<String> |
submitJob(JobRequest jobRequest)
Submit a job to scheduler.
|
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 void |
wrapAndThrowAlluxioStatusException(AlluxioStatusException e) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createDirectory, createFile, delete, exists, free, getBlockLocations, getMountTable, getStatus, iterateStatus, listStatus, loadMetadata, mount, openFile, persist, rename, setAcl, setAttribute, unmount
protected final FileSystemContext mFsContext
protected final BlockStoreClient mBlockStore
protected volatile boolean mClosed
protected static final Error UNREACHABLE_CODE_ERROR
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(URIStatus status) throws IOException, AlluxioException
FileSystem
BlockLocationInfo
for the given file.getBlockLocations
in interface FileSystem
status
- the path statusIOException
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 ListStatusPartialResult listStatusPartial(AlluxioURI path, ListStatusPartialPOptions options) throws AlluxioException, IOException
FileSystem
FileSystem.listStatus(AlluxioURI, ListStatusPOptions)
except may
only return a subset of the results as determined by the options parameter.listStatusPartial
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 existAlluxioException
IOException
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(boolean checkUfs) throws IOException, AlluxioException
FileSystem
getMountTable
in interface FileSystem
checkUfs
- whether to get UFS usage infoMountPointInfo
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
public void needsSync(AlluxioURI path) throws IOException, AlluxioException
FileSystem
needsSync
in interface FileSystem
path
- the path needing synchronizationIOException
AlluxioException
public Optional<String> submitJob(JobRequest jobRequest)
FileSystem
submitJob
in interface FileSystem
jobRequest
- the job requestpublic boolean stopJob(JobDescription jobDescription)
FileSystem
stopJob
in interface FileSystem
jobDescription
- the job descriptionpublic String getJobProgress(JobDescription jobDescription, JobProgressReportFormat format, boolean verbose)
FileSystem
getJobProgress
in interface FileSystem
jobDescription
- the job descriptionformat
- progress report formatverbose
- whether to return verbose reportprotected void checkUri(AlluxioURI uri)
AlluxioURI
for scheme and authority information. Warn the user and throw an
exception if necessary.protected void wrapAndThrowAlluxioStatusException(AlluxioStatusException e) throws AlluxioException, IOException
AlluxioException
IOException
public FileSystemContext getFileSystemContext()
Copyright © 2023. All Rights Reserved.