org.apache.hadoop.fs
Class RawLocalFileSystem

java.lang.Object
  extended by org.apache.hadoop.conf.Configured
      extended by org.apache.hadoop.fs.FileSystem
          extended by org.apache.hadoop.fs.RawLocalFileSystem
All Implemented Interfaces:
Closeable, Configurable

@InterfaceAudience.Public
@InterfaceStability.Stable
public class RawLocalFileSystem
extends FileSystem

Implement the FileSystem API for the raw local filesystem.


Field Summary
 
Fields inherited from class org.apache.hadoop.fs.FileSystem
DEFAULT_FS, FS_DEFAULT_NAME_KEY, LOG, SHUTDOWN_HOOK_PRIORITY, statistics
 
Constructor Summary
RawLocalFileSystem()
           
 
Method Summary
 FSDataOutputStream append(Path f, int bufferSize, Progressable progress)
          Append to an existing file (optional operation).
 void close()
          No more filesystem operations are needed.
 void completeLocalOutput(Path fsWorkingFile, Path tmpLocalFile)
          Called when we're all done writing to the target.
 FSDataOutputStream create(Path f, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress)
          Create an FSDataOutputStream at the indicated Path with write-progress reporting.
 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, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress)
          Opens 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)
          Deprecated. 
protected  OutputStream createOutputStream(Path f, boolean append)
           
 void createSymlink(Path target, Path link, boolean createParent)
          See FileContext.createSymlink(Path, Path, boolean)
 boolean delete(Path p, boolean recursive)
          Delete the given path to a file or directory.
 FileStatus getFileLinkStatus(Path f)
          Return a FileStatus representing the given path.
 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.
protected  Path getInitialWorkingDirectory()
          Note: with the new FilesContext class, getWorkingDirectory() will be removed.
 Path getLinkTarget(Path f)
          See FileContext.getLinkTarget(Path)
 FsStatus getStatus(Path p)
          Returns a status object describing the use and capacity of the file system.
 URI getUri()
          Returns a URI whose scheme and authority identify this FileSystem.
 Path getWorkingDirectory()
          Get the current working directory for the given file system
 void initialize(URI uri, Configuration conf)
          Called after a new FileSystem instance is constructed.
 FileStatus[] listStatus(Path f)
          List the statuses of the files/directories in the given path if the path is a directory.
 boolean mkdirs(Path f)
          Creates the specified directory hierarchy.
 boolean mkdirs(Path f, FsPermission permission)
          Make the given file and all non-existent parents into directories.
protected  boolean mkOneDir(File p2f)
           
 void moveFromLocalFile(Path src, Path dst)
          The src file is on the local disk.
 FSDataInputStream open(Path f, int bufferSize)
          Opens an FSDataInputStream at the indicated Path.
 File pathToFile(Path path)
          Convert a path to a File.
protected  boolean primitiveMkdir(Path f, FsPermission absolutePermission)
          This version of the mkdirs method assumes that the permission is absolute.
 boolean rename(Path src, Path dst)
          Renames Path src to Path dst.
 void setOwner(Path p, String username, String groupname)
          Use the command chown to set owner.
 void setPermission(Path p, FsPermission permission)
          Use the command chmod to set permission.
 void setTimes(Path p, long mtime, long atime)
          Sets the Path's last modified time only to the given valid time.
 void setWorkingDirectory(Path newDir)
          Set the working directory to the given directory.
 Path startLocalOutput(Path fsOutputFile, Path tmpLocalFile)
          Returns a local File that the user can write output to.
 boolean supportsSymlinks()
          See AbstractFileSystem.supportsSymlinks()
 String toString()
           
static void useStatIfAvailable()
           
 
Methods inherited from class org.apache.hadoop.fs.FileSystem
append, append, areSymlinksEnabled, cancelDeleteOnExit, canonicalizeUri, checkPath, clearStatistics, closeAll, closeAllForUGI, concat, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyToLocalFile, copyToLocalFile, copyToLocalFile, create, create, create, create, create, create, create, create, create, create, create, createNewFile, createNonRecursive, createSnapshot, createSnapshot, delete, deleteOnExit, deleteSnapshot, enableSymlinks, exists, fixRelativePart, get, get, get, getAclStatus, getAllStatistics, getBlockSize, getCanonicalUri, getContentSummary, getDefaultBlockSize, getDefaultBlockSize, getDefaultPort, getDefaultReplication, getDefaultReplication, getDefaultUri, getFileBlockLocations, getFileBlockLocations, getFileChecksum, getFileChecksum, getFileSystemClass, getFSofPath, getLength, getLocal, getName, getNamed, getReplication, getScheme, getServerDefaults, getServerDefaults, getStatistics, getStatistics, getStatus, getUsed, getXAttr, getXAttrs, getXAttrs, globStatus, globStatus, isDirectory, isFile, listCorruptFileBlocks, listFiles, listLocatedStatus, listLocatedStatus, listStatus, listStatus, listStatus, listXAttrs, makeQualified, mkdirs, modifyAclEntries, moveFromLocalFile, moveToLocalFile, newInstance, newInstance, newInstance, newInstanceLocal, open, primitiveCreate, primitiveMkdir, printStatistics, processDeleteOnExit, removeAcl, removeAclEntries, removeDefaultAcl, removeXAttr, rename, renameSnapshot, resolveLink, resolvePath, setAcl, setDefaultUri, setDefaultUri, setReplication, setVerifyChecksum, setWriteChecksum, setXAttr, setXAttr
 
Methods inherited from class org.apache.hadoop.conf.Configured
getConf, setConf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RawLocalFileSystem

public RawLocalFileSystem()
Method Detail

useStatIfAvailable

public static void useStatIfAvailable()

pathToFile

public File pathToFile(Path path)
Convert a path to a File.


getUri

public URI getUri()
Description copied from class: FileSystem
Returns a URI whose scheme and authority identify this FileSystem.

Specified by:
getUri in class FileSystem

initialize

public void initialize(URI uri,
                       Configuration conf)
                throws IOException
Description copied from class: FileSystem
Called after a new FileSystem instance is constructed.

Overrides:
initialize in class FileSystem
Parameters:
uri - a uri whose authority section names the host, port, etc. for this FileSystem
conf - the configuration
Throws:
IOException

open

public FSDataInputStream open(Path f,
                              int bufferSize)
                       throws IOException
Description copied from class: FileSystem
Opens an FSDataInputStream at the indicated Path.

Specified by:
open in class FileSystem
Parameters:
f - the file name to open
bufferSize - the size of the buffer to be used.
Throws:
IOException

append

public FSDataOutputStream append(Path f,
                                 int bufferSize,
                                 Progressable progress)
                          throws IOException
Description copied from class: FileSystem
Append to an existing file (optional operation).

Specified by:
append in class FileSystem
Parameters:
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.
Throws:
IOException

create

public FSDataOutputStream create(Path f,
                                 boolean overwrite,
                                 int bufferSize,
                                 short replication,
                                 long blockSize,
                                 Progressable progress)
                          throws IOException
Description copied from class: FileSystem
Create an FSDataOutputStream at the indicated Path with write-progress reporting.

Overrides:
create in class FileSystem
Parameters:
f - the file name to open
overwrite - 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.
Throws:
IOException

createOutputStream

protected OutputStream createOutputStream(Path f,
                                          boolean append)
                                   throws IOException
Throws:
IOException

createNonRecursive

@Deprecated
public FSDataOutputStream createNonRecursive(Path f,
                                                        FsPermission permission,
                                                        EnumSet<CreateFlag> flags,
                                                        int bufferSize,
                                                        short replication,
                                                        long blockSize,
                                                        Progressable progress)
                                      throws IOException
Deprecated. 

Description copied from class: FileSystem
Opens an FSDataOutputStream at the indicated Path with write-progress reporting. Same as create(), except fails if parent directory doesn't already exist.

Overrides:
createNonRecursive in class FileSystem
Parameters:
f - the file name to open
flags - CreateFlags to use for this stream.
bufferSize - the size of the buffer to be used.
replication - required block replication for the file.
Throws:
IOException
See Also:
FileSystem.setPermission(Path, FsPermission)

create

public FSDataOutputStream create(Path f,
                                 FsPermission permission,
                                 boolean overwrite,
                                 int bufferSize,
                                 short replication,
                                 long blockSize,
                                 Progressable progress)
                          throws IOException
Description copied from class: FileSystem
Create an FSDataOutputStream at the indicated Path with write-progress reporting.

Specified by:
create in class FileSystem
Parameters:
f - the file name to open
overwrite - 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.
Throws:
IOException
See Also:
FileSystem.setPermission(Path, FsPermission)

createNonRecursive

public FSDataOutputStream createNonRecursive(Path f,
                                             FsPermission permission,
                                             boolean overwrite,
                                             int bufferSize,
                                             short replication,
                                             long blockSize,
                                             Progressable progress)
                                      throws IOException
Description copied from class: FileSystem
Opens an FSDataOutputStream at the indicated Path with write-progress reporting. Same as create(), except fails if parent directory doesn't already exist.

Overrides:
createNonRecursive in class FileSystem
Parameters:
f - the file name to open
overwrite - 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.
Throws:
IOException
See Also:
FileSystem.setPermission(Path, FsPermission)

rename

public boolean rename(Path src,
                      Path dst)
               throws IOException
Description copied from class: FileSystem
Renames Path src to Path dst. Can take place on local fs or remote DFS.

Specified by:
rename in class FileSystem
Parameters:
src - path to be renamed
dst - new path after rename
Returns:
true if rename is successful
Throws:
IOException - on failure

delete

public boolean delete(Path p,
                      boolean recursive)
               throws IOException
Delete the given path to a file or directory.

Specified by:
delete in class FileSystem
Parameters:
p - the path to delete
recursive - to delete sub-directories
Returns:
true if the file or directory and all its contents were deleted
Throws:
IOException - if p is non-empty and recursive is false

listStatus

public FileStatus[] listStatus(Path f)
                        throws IOException
Description copied from class: FileSystem
List the statuses of the files/directories in the given path if the path is a directory.

Specified by:
listStatus in class FileSystem
Parameters:
f - given path
Returns:
the statuses of the files/directories in the given patch
Throws:
FileNotFoundException - when the path does not exist; IOException see specific implementation
IOException

mkOneDir

protected boolean mkOneDir(File p2f)
                    throws IOException
Throws:
IOException

mkdirs

public boolean mkdirs(Path f)
               throws IOException
Creates the specified directory hierarchy. Does not treat existence as an error.

Overrides:
mkdirs in class FileSystem
Throws:
IOException

mkdirs

public boolean mkdirs(Path f,
                      FsPermission permission)
               throws IOException
Description copied from class: FileSystem
Make the given file and all non-existent parents into directories. Has the semantics of Unix 'mkdir -p'. Existence of the directory hierarchy is not an error.

Specified by:
mkdirs in class FileSystem
Parameters:
f - path to create
permission - to apply to f
Throws:
IOException

primitiveMkdir

protected boolean primitiveMkdir(Path f,
                                 FsPermission absolutePermission)
                          throws IOException
Description copied from class: FileSystem
This version of the mkdirs method assumes that the permission is absolute. It has been added to support the FileContext that processes the permission with umask before calling this method. This a temporary method added to support the transition from FileSystem to FileContext for user applications.

Overrides:
primitiveMkdir in class FileSystem
Throws:
IOException

getHomeDirectory

public Path getHomeDirectory()
Description copied from class: FileSystem
Return the current user's home directory in this filesystem. The default implementation returns "/user/$USER/".

Overrides:
getHomeDirectory in class FileSystem

setWorkingDirectory

public void setWorkingDirectory(Path newDir)
Set the working directory to the given directory.

Specified by:
setWorkingDirectory in class FileSystem

getWorkingDirectory

public Path getWorkingDirectory()
Description copied from class: FileSystem
Get the current working directory for the given file system

Specified by:
getWorkingDirectory in class FileSystem
Returns:
the directory pathname

getInitialWorkingDirectory

protected Path getInitialWorkingDirectory()
Description copied from class: FileSystem
Note: with the new FilesContext class, getWorkingDirectory() will be removed. The working directory is implemented in FilesContext. Some file systems like LocalFileSystem have an initial workingDir that we use as the starting workingDir. For other file systems like HDFS there is no built in notion of an initial workingDir.

Overrides:
getInitialWorkingDirectory in class FileSystem
Returns:
if there is built in notion of workingDir then it is returned; else a null is returned.

getStatus

public FsStatus getStatus(Path p)
                   throws IOException
Description copied from class: FileSystem
Returns a status object describing the use and capacity of the file system. If the file system has multiple partitions, the use and capacity of the partition pointed to by the specified path is reflected.

Overrides:
getStatus in class FileSystem
Parameters:
p - Path for which status should be obtained. null means the default partition.
Returns:
a FsStatus object
Throws:
IOException - see specific implementation

moveFromLocalFile

public void moveFromLocalFile(Path src,
                              Path dst)
                       throws IOException
Description copied from class: FileSystem
The src file is on the local disk. Add it to FS at the given dst name, removing the source afterwards.

Overrides:
moveFromLocalFile in class FileSystem
Parameters:
src - path
dst - path
Throws:
IOException

startLocalOutput

public Path startLocalOutput(Path fsOutputFile,
                             Path tmpLocalFile)
                      throws IOException
Description copied from class: FileSystem
Returns a local File that the user can write output to. The caller provides both the eventual FS target name and the local working file. If the FS is local, we write directly into the target. If the FS is remote, we write into the tmp local area.

Overrides:
startLocalOutput in class FileSystem
Parameters:
fsOutputFile - path of output file
tmpLocalFile - path of local tmp file
Throws:
IOException

completeLocalOutput

public void completeLocalOutput(Path fsWorkingFile,
                                Path tmpLocalFile)
                         throws IOException
Description copied from class: FileSystem
Called when we're all done writing to the target. A local FS will do nothing, because we've written to exactly the right place. A remote FS will copy the contents of tmpLocalFile to the correct target at fsOutputFile.

Overrides:
completeLocalOutput in class FileSystem
Parameters:
fsWorkingFile - path of output file
tmpLocalFile - path to local tmp file
Throws:
IOException

close

public void close()
           throws IOException
Description copied from class: FileSystem
No more filesystem operations are needed. Will release any held locks.

Specified by:
close in interface Closeable
Overrides:
close in class FileSystem
Throws:
IOException

toString

public String toString()
Overrides:
toString in class Object

getFileStatus

public FileStatus getFileStatus(Path f)
                         throws IOException
Description copied from class: FileSystem
Return a file status object that represents the path.

Specified by:
getFileStatus in class FileSystem
Parameters:
f - The path we want information from
Returns:
a FileStatus object
Throws:
FileNotFoundException - when the path does not exist; IOException see specific implementation
IOException

setOwner

public void setOwner(Path p,
                     String username,
                     String groupname)
              throws IOException
Use the command chown to set owner.

Overrides:
setOwner in class FileSystem
Parameters:
p - The path
username - If it is null, the original username remains unchanged.
groupname - If it is null, the original groupname remains unchanged.
Throws:
IOException

setPermission

public void setPermission(Path p,
                          FsPermission permission)
                   throws IOException
Use the command chmod to set permission.

Overrides:
setPermission in class FileSystem
Throws:
IOException

setTimes

public void setTimes(Path p,
                     long mtime,
                     long atime)
              throws IOException
Sets the Path's last modified time only to the given valid time.

Overrides:
setTimes in class FileSystem
Parameters:
mtime - the modification time to set (only if greater than zero).
atime - currently ignored.
p - The path
Throws:
IOException - if setting the last modified time fails.

supportsSymlinks

public boolean supportsSymlinks()
Description copied from class: FileSystem
See AbstractFileSystem.supportsSymlinks()

Overrides:
supportsSymlinks in class FileSystem

createSymlink

public void createSymlink(Path target,
                          Path link,
                          boolean createParent)
                   throws IOException
Description copied from class: FileSystem
See FileContext.createSymlink(Path, Path, boolean)

Overrides:
createSymlink in class FileSystem
Throws:
IOException

getFileLinkStatus

public FileStatus getFileLinkStatus(Path f)
                             throws IOException
Return a FileStatus representing the given path. If the path refers to a symlink return a FileStatus representing the link rather than the object the link refers to.

Overrides:
getFileLinkStatus in class FileSystem
Throws:
IOException

getLinkTarget

public Path getLinkTarget(Path f)
                   throws IOException
Description copied from class: FileSystem
See FileContext.getLinkTarget(Path)

Overrides:
getLinkTarget in class FileSystem
Throws:
IOException


Copyright © 2014 Apache Software Foundation. All Rights Reserved.