|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.hadoop.conf.Configured org.apache.hadoop.fs.FileSystem org.apache.hadoop.fs.s3native.NativeS3FileSystem
@InterfaceAudience.Public @InterfaceStability.Stable public class NativeS3FileSystem
A FileSystem
for reading and writing files stored on
Amazon S3.
Unlike S3FileSystem
this implementation
stores files on S3 in their
native form so they can be read by other S3 tools.
A note about directories. S3 of course has no "native" support for them.
The idiom we choose then is: for any directory created by this class,
we use an empty object "#{dirpath}_$folder$" as a marker.
Further, to interoperate with other S3 tools, we also accept the following:
- an object "#{dirpath}/' denoting a directory marker
- if there exists any objects with the prefix "#{dirpath}/", then the
directory is said to exist
- if both a file with the name of a directory and a marker for that
directory exists, then the *file masks the directory*, and the directory
is never returned.
S3FileSystem
Field Summary | |
---|---|
static org.slf4j.Logger |
LOG
|
Fields inherited from class org.apache.hadoop.fs.FileSystem |
---|
DEFAULT_FS, FS_DEFAULT_NAME_KEY, SHUTDOWN_HOOK_PRIORITY, statistics |
Constructor Summary | |
---|---|
NativeS3FileSystem()
|
|
NativeS3FileSystem(org.apache.hadoop.fs.s3native.NativeFileSystemStore store)
|
Method Summary | |
---|---|
FSDataOutputStream |
append(Path f,
int bufferSize,
Progressable progress)
This optional operation is not yet supported. |
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. |
boolean |
delete(Path f,
boolean recurse)
Delete a file. |
String |
getCanonicalServiceName()
Get a canonical service name for this file system. |
long |
getDefaultBlockSize()
Return the number of bytes that large input files should be optimally be split into to minimize i/o time. |
FileStatus |
getFileStatus(Path f)
Return a file status object that represents the path. |
String |
getScheme()
Return the protocol scheme for the FileSystem. |
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)
If f is a file, this method will make a single call to S3. |
boolean |
mkdirs(Path f,
FsPermission permission)
Make the given file and all non-existent parents into directories. |
FSDataInputStream |
open(Path f,
int bufferSize)
Opens an FSDataInputStream at the indicated Path. |
boolean |
rename(Path src,
Path dst)
Renames Path src to Path dst. |
void |
setWorkingDirectory(Path newDir)
Set the working directory to the given directory. |
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, toString, wait, wait, wait |
Field Detail |
---|
public static final org.slf4j.Logger LOG
Constructor Detail |
---|
public NativeS3FileSystem()
public NativeS3FileSystem(org.apache.hadoop.fs.s3native.NativeFileSystemStore store)
Method Detail |
---|
public String getScheme()
getScheme
in class FileSystem
s3n
public void initialize(URI uri, Configuration conf) throws IOException
FileSystem
initialize
in class FileSystem
uri
- a uri whose authority section names the host, port, etc.
for this FileSystemconf
- the configuration
IOException
public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException
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 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 recurse) throws IOException
FileSystem
delete
in class FileSystem
f
- the path to delete.recurse
- 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
public FileStatus getFileStatus(Path f) throws IOException
FileSystem
getFileStatus
in class FileSystem
f
- The path we want information from
FileNotFoundException
- when the path does not exist;
IOException see specific implementation
IOException
public URI getUri()
FileSystem
getUri
in class FileSystem
public FileStatus[] listStatus(Path f) throws IOException
If f
is a file, this method will make a single call to S3.
If f
is a directory, this method will make a maximum of
(n / 1000) + 2 calls to S3, where n is the total number of
files and directories contained directly in f
.
listStatus
in class FileSystem
f
- given path
FileNotFoundException
- when the path does not exist;
IOException see specific implementation
IOException
public boolean mkdirs(Path f, FsPermission permission) throws IOException
FileSystem
mkdirs
in class FileSystem
f
- path to createpermission
- to apply to f
IOException
public FSDataInputStream open(Path f, int bufferSize) throws IOException
FileSystem
open
in class FileSystem
f
- the file name to openbufferSize
- the size of the buffer to be used.
IOException
public boolean rename(Path src, Path dst) throws IOException
FileSystem
rename
in class FileSystem
src
- path to be renameddst
- new path after rename
IOException
- on failurepublic long getDefaultBlockSize()
FileSystem
getDefaultBlockSize
in class FileSystem
public void setWorkingDirectory(Path newDir)
setWorkingDirectory
in class FileSystem
public Path getWorkingDirectory()
FileSystem
getWorkingDirectory
in class FileSystem
public String getCanonicalServiceName()
FileSystem
SecurityUtil.buildDTServiceName(URI, int)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |