@InterfaceAudience.Public @InterfaceStability.Evolving public class ViewFileSystem extends FileSystem
ViewFs
.Modifier and Type | Class and Description |
---|---|
static class |
ViewFileSystem.MountPoint |
FileSystem.Statistics
DEFAULT_FS, FS_DEFAULT_NAME_KEY, LOG, SHUTDOWN_HOOK_PRIORITY, statistics, TRASH_PREFIX
Constructor and Description |
---|
ViewFileSystem()
This is the constructor with the signature needed by
FileSystem.createFileSystem(URI, Configuration)
After this constructor is called initialize() is called. |
ViewFileSystem(Configuration conf)
Convenience Constructor for apps to call directly
|
Modifier and Type | Method and Description |
---|---|
void |
access(Path path,
FsAction mode)
Checks if the user can access a path.
|
FSDataOutputStream |
append(Path f,
int bufferSize,
Progressable progress)
Append to an existing file (optional operation).
|
FSDataOutputStream |
create(Path f,
FsPermission permission,
boolean overwrite,
int bufferSize,
short replication,
long blockSize,
Progressable progress)
Create an FSDataOutputStream at the indicated Path with write-progress
reporting.
|
FSDataOutputStream |
createNonRecursive(Path f,
FsPermission permission,
EnumSet<CreateFlag> flags,
int bufferSize,
short replication,
long blockSize,
Progressable progress)
Opens an FSDataOutputStream at the indicated Path with write-progress
reporting.
|
Path |
createSnapshot(Path path,
String snapshotName)
Create a snapshot
|
boolean |
delete(Path f)
Delete a file
|
boolean |
delete(Path f,
boolean recursive)
Delete a file.
|
void |
deleteSnapshot(Path path,
String snapshotName)
Delete a snapshot of a directory
|
AclStatus |
getAclStatus(Path path)
Gets the ACL of a file or directory.
|
FileSystem[] |
getChildFileSystems()
Get all the immediate child FileSystems embedded in this FileSystem.
|
ContentSummary |
getContentSummary(Path f)
Return the
ContentSummary of a given Path . |
long |
getDefaultBlockSize()
Return the number of bytes that large input files should be optimally
be split into to minimize i/o time.
|
long |
getDefaultBlockSize(Path f)
Return the number of bytes that large input files should be optimally
be split into to minimize i/o time.
|
short |
getDefaultReplication()
Get the default replication.
|
short |
getDefaultReplication(Path f)
Get the default replication for a path.
|
BlockLocation[] |
getFileBlockLocations(FileStatus fs,
long start,
long len)
Return an array containing hostnames, offset and size of
portions of the given file.
|
FileChecksum |
getFileChecksum(Path f)
Get the checksum of a file.
|
FileStatus |
getFileStatus(Path f)
Return a file status object that represents the path.
|
Path |
getHomeDirectory()
Return the current user's home directory in this filesystem.
|
ViewFileSystem.MountPoint[] |
getMountPoints() |
QuotaUsage |
getQuotaUsage(Path f)
Return the
QuotaUsage of a given Path . |
String |
getScheme()
Return the protocol scheme for the FileSystem.
|
FsServerDefaults |
getServerDefaults()
Return a set of server default configuration values
|
FsServerDefaults |
getServerDefaults(Path f)
Return a set of server default configuration values
|
Path |
getTrashCanLocation(Path f) |
URI |
getUri()
Returns a URI whose scheme and authority identify this FileSystem.
|
Path |
getWorkingDirectory()
Get the current working directory for the given file system
|
byte[] |
getXAttr(Path path,
String name)
Get an xattr name and value for a file or directory.
|
Map<String,byte[]> |
getXAttrs(Path path)
Get all of the xattr name/value pairs for a file or directory.
|
Map<String,byte[]> |
getXAttrs(Path path,
List<String> names)
Get all of the xattrs name/value pairs for a file or directory.
|
void |
initialize(URI theUri,
Configuration conf)
Called after a new FileSystem instance is constructed.
|
RemoteIterator<LocatedFileStatus> |
listLocatedStatus(Path f,
PathFilter filter)
Listing a directory
The returned results include its block location if it is a file
The results are filtered by the given path filter
|
FileStatus[] |
listStatus(Path f)
List the statuses of the files/directories in the given path if the path is
a directory.
|
List<String> |
listXAttrs(Path path)
Get all of the xattr names for a file or directory.
|
boolean |
mkdirs(Path dir,
FsPermission permission)
Make the given file and all non-existent parents into
directories.
|
void |
modifyAclEntries(Path path,
List<AclEntry> aclSpec)
Modifies ACL entries of files and directories.
|
FSDataInputStream |
open(Path f,
int bufferSize)
Opens an FSDataInputStream at the indicated Path.
|
void |
removeAcl(Path path)
Removes all but the base ACL entries of files and directories.
|
void |
removeAclEntries(Path path,
List<AclEntry> aclSpec)
Removes ACL entries from files and directories.
|
void |
removeDefaultAcl(Path path)
Removes all default ACL entries from files and directories.
|
void |
removeXAttr(Path path,
String name)
Remove an xattr of a file or directory.
|
boolean |
rename(Path src,
Path dst)
Renames Path src to Path dst.
|
void |
renameSnapshot(Path path,
String snapshotOldName,
String snapshotNewName)
Rename a snapshot
|
Path |
resolvePath(Path f)
Return the fully-qualified path of path f resolving the path
through any symlinks or mount point
|
void |
setAcl(Path path,
List<AclEntry> aclSpec)
Fully replaces ACL of files and directories, discarding all existing
entries.
|
void |
setOwner(Path f,
String username,
String groupname)
Set owner of a path (i.e.
|
void |
setPermission(Path f,
FsPermission permission)
Set permission of a path.
|
boolean |
setReplication(Path f,
short replication)
Set replication for an existing file.
|
void |
setTimes(Path f,
long mtime,
long atime)
Set access time of a file
|
void |
setVerifyChecksum(boolean verifyChecksum)
Set the verify checksum flag.
|
void |
setWorkingDirectory(Path new_dir)
Set the current working directory for the given file system.
|
void |
setWriteChecksum(boolean writeChecksum)
Set the write checksum flag.
|
void |
setXAttr(Path path,
String name,
byte[] value,
EnumSet<XAttrSetFlag> flag)
Set an xattr of a file or directory.
|
boolean |
truncate(Path f,
long newLength)
Truncate the file in the indicated path to the indicated size.
|
addDelegationTokens, append, append, areSymlinksEnabled, cancelDeleteOnExit, canonicalizeUri, checkPath, clearStatistics, close, closeAll, closeAllForUGI, completeLocalOutput, concat, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyToLocalFile, copyToLocalFile, copyToLocalFile, create, create, create, create, create, create, create, create, create, create, create, create, createNewFile, createNonRecursive, createNonRecursive, createSnapshot, createSymlink, deleteOnExit, enableSymlinks, exists, fixRelativePart, get, get, get, getAllStatistics, getAllStoragePolicies, getBlockSize, getCanonicalServiceName, getCanonicalUri, getDefaultPort, getDefaultUri, getFileBlockLocations, getFileChecksum, getFileLinkStatus, getFileSystemClass, getFSofPath, getGlobalStorageStatistics, getInitialWorkingDirectory, getLength, getLinkTarget, getLocal, getName, getNamed, getReplication, getStatistics, getStatistics, getStatus, getStatus, getStoragePolicy, getStorageStatistics, getTrashRoot, getTrashRoots, getUsed, getUsed, globStatus, globStatus, isDirectory, isFile, listCorruptFileBlocks, listFiles, listLocatedStatus, listStatus, listStatus, listStatus, listStatusIterator, makeQualified, mkdirs, mkdirs, moveFromLocalFile, moveFromLocalFile, moveToLocalFile, newInstance, newInstance, newInstance, newInstanceLocal, open, primitiveCreate, primitiveMkdir, primitiveMkdir, printStatistics, processDeleteOnExit, rename, resolveLink, setDefaultUri, setDefaultUri, setStoragePolicy, setXAttr, startLocalOutput, supportsSymlinks, unsetStoragePolicy
getConf, setConf
public ViewFileSystem() throws IOException
FileSystem.createFileSystem(URI, Configuration)
After this constructor is called initialize() is called.IOException
public ViewFileSystem(Configuration conf) throws IOException
conf
- IOException
public String getScheme()
getScheme
in class FileSystem
viewfs
public void initialize(URI theUri, Configuration conf) throws IOException
initialize
in class FileSystem
theUri
- a uri whose authority section names the host, port, etc. for
this FileSystemconf
- the configurationIOException
public Path getTrashCanLocation(Path f) throws FileNotFoundException
FileNotFoundException
public URI getUri()
FileSystem
getUri
in class FileSystem
public Path resolvePath(Path f) throws IOException
FileSystem
resolvePath
in class FileSystem
f
- path to be resolvedFileNotFoundException
IOException
public Path getHomeDirectory()
FileSystem
getHomeDirectory
in class FileSystem
public Path getWorkingDirectory()
FileSystem
getWorkingDirectory
in class FileSystem
public void setWorkingDirectory(Path new_dir)
FileSystem
setWorkingDirectory
in class FileSystem
public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException
FileSystem
append
in class FileSystem
f
- the existing file to be appended.bufferSize
- the size of the buffer to be used.progress
- for reporting progress if it is not null.IOException
public FSDataOutputStream createNonRecursive(Path f, FsPermission permission, EnumSet<CreateFlag> flags, int bufferSize, short replication, long blockSize, Progressable progress) throws IOException
FileSystem
createNonRecursive
in class FileSystem
f
- the file name to openflags
- CreateFlag
s to use for this stream.bufferSize
- the size of the buffer to be used.replication
- required block replication for the file.IOException
FileSystem.setPermission(Path, FsPermission)
public FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress) throws IOException
FileSystem
create
in class FileSystem
f
- the file name to openoverwrite
- if a file with this name already exists, then if true,
the file will be overwritten, and if false an error will be thrown.bufferSize
- the size of the buffer to be used.replication
- required block replication for the file.IOException
FileSystem.setPermission(Path, FsPermission)
public boolean delete(Path f, boolean recursive) throws AccessControlException, FileNotFoundException, IOException
FileSystem
delete
in class FileSystem
f
- the path to delete.recursive
- if path is a directory and set to
true, the directory is deleted else throws an exception. In
case of a file the recursive can be set to either true or false.IOException
AccessControlException
FileNotFoundException
public boolean delete(Path f) throws AccessControlException, FileNotFoundException, IOException
FileSystem
delete
in class FileSystem
AccessControlException
FileNotFoundException
IOException
public BlockLocation[] getFileBlockLocations(FileStatus fs, long start, long len) throws IOException
FileSystem
getFileBlockLocations
in class FileSystem
fs
- FilesStatus to get data fromstart
- offset into the given filelen
- length for which to get locations forIOException
public FileChecksum getFileChecksum(Path f) throws AccessControlException, FileNotFoundException, IOException
FileSystem
getFileChecksum
in class FileSystem
f
- The file pathAccessControlException
FileNotFoundException
IOException
public FileStatus getFileStatus(Path f) throws AccessControlException, FileNotFoundException, IOException
FileSystem
getFileStatus
in class FileSystem
f
- The path we want information fromFileNotFoundException
- when the path does not exist;
IOException see specific implementationAccessControlException
IOException
public void access(Path path, FsAction mode) throws AccessControlException, FileNotFoundException, IOException
FileSystem
AccessControlException
.
The default implementation of this method calls FileSystem.getFileStatus(Path)
and checks the returned permissions against the requested permissions.
Note that the getFileStatus call will be subject to authorization checks.
Typically, this requires search (execute) permissions on each directory in
the path's prefix, but this is implementation-defined. Any file system
that provides a richer authorization model (such as ACLs) may override the
default implementation so that it checks against that model instead.
In general, applications should avoid using this method, due to the risk of
time-of-check/time-of-use race conditions. The permissions on a file may
change immediately after the access call returns. Most applications should
prefer running specific file system actions as the desired user represented
by a UserGroupInformation
.
path
- Path to checkmode
- type of access to checkAccessControlException
- if access is deniedFileNotFoundException
- if the path does not existIOException
- see specific implementationpublic FileStatus[] listStatus(Path f) throws AccessControlException, FileNotFoundException, IOException
FileSystem
Does not guarantee to return the List of files/directories status in a sorted order.
listStatus
in class FileSystem
f
- given pathFileNotFoundException
- when the path does not exist;
IOException see specific implementationAccessControlException
IOException
public RemoteIterator<LocatedFileStatus> listLocatedStatus(Path f, PathFilter filter) throws FileNotFoundException, IOException
FileSystem
listLocatedStatus
in class FileSystem
f
- a pathfilter
- a path filterFileNotFoundException
- if f
does not existIOException
- if any I/O error occurredpublic boolean mkdirs(Path dir, FsPermission permission) throws IOException
FileSystem
mkdirs
in class FileSystem
dir
- path to createpermission
- to apply to fIOException
public FSDataInputStream open(Path f, int bufferSize) throws AccessControlException, FileNotFoundException, IOException
FileSystem
open
in class FileSystem
f
- the file name to openbufferSize
- the size of the buffer to be used.AccessControlException
FileNotFoundException
IOException
public boolean rename(Path src, Path dst) throws IOException
FileSystem
rename
in class FileSystem
src
- path to be renameddst
- new path after renameIOException
- on failurepublic boolean truncate(Path f, long newLength) throws IOException
FileSystem
truncate
in class FileSystem
f
- The path to the file to be truncatednewLength
- The size the file is to be truncated totrue
if the file has been truncated to the desired
newLength
and is immediately available to be reused for
write operations such as append
, or
false
if a background process of adjusting the length of
the last block has been started, and clients should wait for it to
complete before proceeding with further file updates.IOException
public void setOwner(Path f, String username, String groupname) throws AccessControlException, FileNotFoundException, IOException
FileSystem
setOwner
in class FileSystem
f
- The pathusername
- If it is null, the original username remains unchanged.groupname
- If it is null, the original groupname remains unchanged.AccessControlException
FileNotFoundException
IOException
public void setPermission(Path f, FsPermission permission) throws AccessControlException, FileNotFoundException, IOException
FileSystem
setPermission
in class FileSystem
AccessControlException
FileNotFoundException
IOException
public boolean setReplication(Path f, short replication) throws AccessControlException, FileNotFoundException, IOException
FileSystem
setReplication
in class FileSystem
f
- file namereplication
- new replicationIOException
AccessControlException
FileNotFoundException
public void setTimes(Path f, long mtime, long atime) throws AccessControlException, FileNotFoundException, IOException
FileSystem
setTimes
in class FileSystem
f
- The pathmtime
- Set the modification time of this file.
The number of milliseconds since Jan 1, 1970.
A value of -1 means that this call should not set modification time.atime
- Set the access time of this file.
The number of milliseconds since Jan 1, 1970.
A value of -1 means that this call should not set access time.AccessControlException
FileNotFoundException
IOException
public void modifyAclEntries(Path path, List<AclEntry> aclSpec) throws IOException
FileSystem
modifyAclEntries
in class FileSystem
path
- Path to modifyaclSpec
- ListIOException
- if an ACL could not be modifiedpublic void removeAclEntries(Path path, List<AclEntry> aclSpec) throws IOException
FileSystem
removeAclEntries
in class FileSystem
path
- Path to modifyaclSpec
- ListIOException
- if an ACL could not be modifiedpublic void removeDefaultAcl(Path path) throws IOException
FileSystem
removeDefaultAcl
in class FileSystem
path
- Path to modifyIOException
- if an ACL could not be modifiedpublic void removeAcl(Path path) throws IOException
FileSystem
removeAcl
in class FileSystem
path
- Path to modifyIOException
- if an ACL could not be removedpublic void setAcl(Path path, List<AclEntry> aclSpec) throws IOException
FileSystem
setAcl
in class FileSystem
path
- Path to modifyaclSpec
- ListIOException
- if an ACL could not be modifiedpublic AclStatus getAclStatus(Path path) throws IOException
FileSystem
getAclStatus
in class FileSystem
path
- Path to getIOException
- if an ACL could not be readpublic void setXAttr(Path path, String name, byte[] value, EnumSet<XAttrSetFlag> flag) throws IOException
FileSystem
setXAttr
in class FileSystem
path
- Path to modifyname
- xattr name.value
- xattr value.flag
- xattr set flagIOException
public byte[] getXAttr(Path path, String name) throws IOException
FileSystem
getXAttr
in class FileSystem
path
- Path to get extended attributename
- xattr name.IOException
public Map<String,byte[]> getXAttrs(Path path) throws IOException
FileSystem
getXAttrs
in class FileSystem
path
- Path to get extended attributesIOException
public Map<String,byte[]> getXAttrs(Path path, List<String> names) throws IOException
FileSystem
getXAttrs
in class FileSystem
path
- Path to get extended attributesnames
- XAttr names.IOException
public List<String> listXAttrs(Path path) throws IOException
FileSystem
listXAttrs
in class FileSystem
path
- Path to get extended attributesIOException
public void removeXAttr(Path path, String name) throws IOException
FileSystem
removeXAttr
in class FileSystem
path
- Path to remove extended attributename
- xattr nameIOException
public void setVerifyChecksum(boolean verifyChecksum)
FileSystem
setVerifyChecksum
in class FileSystem
public long getDefaultBlockSize()
FileSystem
getDefaultBlockSize
in class FileSystem
public short getDefaultReplication()
FileSystem
getDefaultReplication
in class FileSystem
public FsServerDefaults getServerDefaults() throws IOException
FileSystem
getServerDefaults
in class FileSystem
IOException
public long getDefaultBlockSize(Path f)
FileSystem
getDefaultBlockSize
in class FileSystem
f
- path of filepublic short getDefaultReplication(Path f)
FileSystem
getDefaultReplication
in class FileSystem
f
- of the filepublic FsServerDefaults getServerDefaults(Path f) throws IOException
FileSystem
getServerDefaults
in class FileSystem
f
- path is used to identify an FS since an FS could have
another FS that it could be delegating the call toIOException
public ContentSummary getContentSummary(Path f) throws IOException
FileSystem
ContentSummary
of a given Path
.getContentSummary
in class FileSystem
f
- path to useIOException
public QuotaUsage getQuotaUsage(Path f) throws IOException
FileSystem
QuotaUsage
of a given Path
.getQuotaUsage
in class FileSystem
f
- path to useIOException
public void setWriteChecksum(boolean writeChecksum)
FileSystem
setWriteChecksum
in class FileSystem
public FileSystem[] getChildFileSystems()
FileSystem
public ViewFileSystem.MountPoint[] getMountPoints()
public Path createSnapshot(Path path, String snapshotName) throws IOException
FileSystem
createSnapshot
in class FileSystem
path
- The directory where snapshots will be taken.snapshotName
- The name of the snapshotIOException
public void renameSnapshot(Path path, String snapshotOldName, String snapshotNewName) throws IOException
FileSystem
renameSnapshot
in class FileSystem
path
- The directory path where the snapshot was takensnapshotOldName
- Old name of the snapshotsnapshotNewName
- New name of the snapshotIOException
public void deleteSnapshot(Path path, String snapshotName) throws IOException
FileSystem
deleteSnapshot
in class FileSystem
path
- The directory that the to-be-deleted snapshot belongs tosnapshotName
- The name of the snapshotIOException
Copyright © 2017 Apache Software Foundation. All Rights Reserved.