org.apache.hadoop.fs
Class FilterFileSystem

java.lang.Object
  extended by org.apache.hadoop.conf.Configured
      extended by org.apache.hadoop.fs.FileSystem
          extended by org.apache.hadoop.fs.FilterFileSystem
All Implemented Interfaces:
Configurable
Direct Known Subclasses:
ChecksumFileSystem, PhasedFileSystem

public class FilterFileSystem
extends FileSystem

A FilterFileSystem contains some other file system, which it uses as its basic file system, possibly transforming the data along the way or providing additional functionality. The class FilterFileSystem itself simply overrides all methods of FileSystem with versions that pass all requests to the contained file system. Subclasses of FilterFileSystem may further override some of these methods and may also provide additional methods and fields.

Author:
Hairong Kuang

Field Summary
protected  FileSystem fs
           
 
Fields inherited from class org.apache.hadoop.fs.FileSystem
LOG
 
Constructor Summary
FilterFileSystem(FileSystem fs)
           
 
Method Summary
protected  void checkPath(Path path)
          Check that a Path belongs to this FileSystem.
 void close()
          No more filesystem operations are needed.
 void completeLocalOutput(Path fsOutputFile, Path tmpLocalFile)
          Called when we're all done writing to the target.
 void copyFromLocalFile(boolean delSrc, Path src, Path dst)
          The src file is on the local disk.
 void copyToLocalFile(boolean delSrc, Path src, Path dst)
          The src file is under FS, and the dst is on the local disk.
 FSDataOutputStream create(Path f, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress)
          Opens an FSDataOutputStream at the indicated Path with write-progress reporting.
 boolean delete(Path f)
          Delete a file
 boolean exists(Path f)
          Check if exists.
 long getBlockSize(Path f)
          Get the block size for a particular file.
 Configuration getConf()
          Return the configuration used by this object.
 long getDefaultBlockSize()
          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.
 String[][] getFileCacheHints(Path f, long start, long len)
          Return a 2D array of size 1x1 or greater, containing hostnames where portions of the given file can be found.
 long getLength(Path f)
          The number of bytes in a file.
 String getName()
          Deprecated. call #getUri() instead.
 short getReplication(Path src)
          Get replication.
 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 name, Configuration conf)
          Called after a new FileSystem instance is constructed.
 boolean isDirectory(Path f)
          True iff the named path is a directory.
 Path[] listPaths(Path f)
          List files in a directory.
 void lock(Path f, boolean shared)
          Deprecated. FS does not support file locks anymore.
 Path makeQualified(Path path)
          Make sure that a path specifies a FileSystem.
 boolean mkdirs(Path f)
          Make the given file and all non-existent parents into directories.
 FSDataInputStream open(Path f, int bufferSize)
          Opens an FSDataInputStream at the indicated Path.
 void release(Path f)
          Deprecated. FS does not support file locks anymore.
 boolean rename(Path src, Path dst)
          Renames Path src to Path dst.
 boolean setReplication(Path src, short replication)
          Set replication for an existing file.
 void setWorkingDirectory(Path newDir)
          Set the current working directory for the given file system.
 Path startLocalOutput(Path fsOutputFile, Path tmpLocalFile)
          Returns a local File that the user can write output to.
 
Methods inherited from class org.apache.hadoop.fs.FileSystem
closeAll, copyFromLocalFile, copyToLocalFile, create, create, create, create, create, create, create, createNewFile, get, get, getContentLength, getLocal, getNamed, getUsed, globPaths, globPaths, isFile, listPaths, listPaths, listPaths, moveFromLocalFile, moveToLocalFile, open, parseArgs
 
Methods inherited from class org.apache.hadoop.conf.Configured
setConf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fs

protected FileSystem fs
Constructor Detail

FilterFileSystem

public FilterFileSystem(FileSystem fs)
Method Detail

initialize

public void initialize(URI name,
                       Configuration conf)
                throws IOException
Called after a new FileSystem instance is constructed.

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

getUri

public URI getUri()
Returns a URI whose scheme and authority identify this FileSystem.

Specified by:
getUri in class FileSystem

getName

public String getName()
Deprecated. call #getUri() instead.

Specified by:
getName in class FileSystem

makeQualified

public Path makeQualified(Path path)
Make sure that a path specifies a FileSystem.

Overrides:
makeQualified in class FileSystem

checkPath

protected void checkPath(Path path)
Check that a Path belongs to this FileSystem.

Overrides:
checkPath in class FileSystem

getFileCacheHints

public String[][] getFileCacheHints(Path f,
                                    long start,
                                    long len)
                             throws IOException
Return a 2D array of size 1x1 or greater, containing hostnames where portions of the given file can be found. For a nonexistent file or regions, null will be returned. This call is most helpful with DFS, where it returns hostnames of machines that contain the given file. The FileSystem will simply return an elt containing 'localhost'.

Specified by:
getFileCacheHints in class FileSystem
Throws:
IOException

open

public FSDataInputStream open(Path f,
                              int bufferSize)
                       throws IOException
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

create

public FSDataOutputStream create(Path f,
                                 boolean overwrite,
                                 int bufferSize,
                                 short replication,
                                 long blockSize,
                                 Progressable progress)
                          throws IOException
Opens 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

getReplication

public short getReplication(Path src)
                     throws IOException
Get replication.

Specified by:
getReplication in class FileSystem
Parameters:
src - file name
Returns:
file replication
Throws:
IOException

setReplication

public boolean setReplication(Path src,
                              short replication)
                       throws IOException
Set replication for an existing file.

Specified by:
setReplication in class FileSystem
Parameters:
src - file name
replication - new replication
Returns:
true if successful; false if file does not exist or is a directory
Throws:
IOException

rename

public boolean rename(Path src,
                      Path dst)
               throws IOException
Renames Path src to Path dst. Can take place on local fs or remote DFS.

Specified by:
rename in class FileSystem
Throws:
IOException

delete

public boolean delete(Path f)
               throws IOException
Delete a file

Specified by:
delete in class FileSystem
Throws:
IOException

exists

public boolean exists(Path f)
               throws IOException
Check if exists.

Specified by:
exists in class FileSystem
Parameters:
f - source file
Throws:
IOException

isDirectory

public boolean isDirectory(Path f)
                    throws IOException
True iff the named path is a directory.

Specified by:
isDirectory in class FileSystem
Throws:
IOException

getLength

public long getLength(Path f)
               throws IOException
The number of bytes in a file.

Specified by:
getLength in class FileSystem
Throws:
IOException

listPaths

public Path[] listPaths(Path f)
                 throws IOException
List files in a directory.

Specified by:
listPaths in class FileSystem
Throws:
IOException

setWorkingDirectory

public void setWorkingDirectory(Path newDir)
Set the current working directory for the given file system. All relative paths will be resolved relative to it.

Specified by:
setWorkingDirectory in class FileSystem
Parameters:
newDir -

getWorkingDirectory

public Path getWorkingDirectory()
Get the current working directory for the given file system

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

mkdirs

public boolean mkdirs(Path f)
               throws IOException
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
Throws:
IOException

lock

@Deprecated
public void lock(Path f,
                            boolean shared)
          throws IOException
Deprecated. FS does not support file locks anymore.

Obtain a lock on the given Path

Specified by:
lock in class FileSystem
Throws:
IOException

release

@Deprecated
public void release(Path f)
             throws IOException
Deprecated. FS does not support file locks anymore.

Release the lock

Specified by:
release in class FileSystem
Throws:
IOException

copyFromLocalFile

public void copyFromLocalFile(boolean delSrc,
                              Path src,
                              Path dst)
                       throws IOException
The src file is on the local disk. Add it to FS at the given dst name. delSrc indicates if the source should be removed

Specified by:
copyFromLocalFile in class FileSystem
Throws:
IOException

copyToLocalFile

public void copyToLocalFile(boolean delSrc,
                            Path src,
                            Path dst)
                     throws IOException
The src file is under FS, and the dst is on the local disk. Copy it from FS control to the local dst name. delSrc indicates if the src will be removed or not.

Specified by:
copyToLocalFile in class FileSystem
Throws:
IOException

startLocalOutput

public Path startLocalOutput(Path fsOutputFile,
                             Path tmpLocalFile)
                      throws IOException
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.

Specified by:
startLocalOutput in class FileSystem
Throws:
IOException

completeLocalOutput

public void completeLocalOutput(Path fsOutputFile,
                                Path tmpLocalFile)
                         throws IOException
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.

Specified by:
completeLocalOutput in class FileSystem
Throws:
IOException

getBlockSize

public long getBlockSize(Path f)
                  throws IOException
Get the block size for a particular file.

Specified by:
getBlockSize in class FileSystem
Parameters:
f - the filename
Returns:
the number of bytes in a block
Throws:
IOException

getDefaultBlockSize

public long getDefaultBlockSize()
Return the number of bytes that large input files should be optimally be split into to minimize i/o time.

Overrides:
getDefaultBlockSize in class FileSystem

getDefaultReplication

public short getDefaultReplication()
Get the default replication.

Specified by:
getDefaultReplication in class FileSystem

getConf

public Configuration getConf()
Description copied from interface: Configurable
Return the configuration used by this object.

Specified by:
getConf in interface Configurable
Overrides:
getConf in class Configured

close

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

Overrides:
close in class FileSystem
Throws:
IOException


Copyright © 2006 The Apache Software Foundation