Package org.apache.flink.state.forst.fs
Class ForStFlinkFileSystem
- java.lang.Object
-
- org.apache.flink.core.fs.FileSystem
-
- org.apache.flink.state.forst.fs.ForStFlinkFileSystem
-
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.flink.core.fs.IFileSystem
public class ForStFlinkFileSystem extends org.apache.flink.core.fs.FileSystem implements Closeable
AFileSystemdelegates some requests to file system loaded by Flink FileSystem mechanism.All methods in this class maybe used by ForSt, please start a discussion firstly if it has to be modified.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classForStFlinkFileSystem.FileStatusWrapper
-
Constructor Summary
Constructors Constructor Description ForStFlinkFileSystem(org.apache.flink.core.fs.FileSystem delegateFS, String remoteBase, String localBase, FileBasedCache fileBasedCache)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()ByteBufferWritableFSDataOutputStreamcreate(org.apache.flink.core.fs.Path path)Create ByteBufferWritableFSDataOutputStream from specific path which supports to write data to ByteBuffer withFileSystem.WriteMode.OVERWRITEmode.ByteBufferWritableFSDataOutputStreamcreate(org.apache.flink.core.fs.Path dbFilePath, org.apache.flink.core.fs.FileSystem.WriteMode overwriteMode)booleandelete(org.apache.flink.core.fs.Path path, boolean recursive)booleanexists(org.apache.flink.core.fs.Path f)static ForStFlinkFileSystemget(URI uri)Returns a reference to theFileSysteminstance for accessing the file system identified by the givenURI.static ForStFlinkFileSystemget(URI uri, org.apache.flink.core.fs.Path localBase, FileBasedCache fileBasedCache)org.apache.flink.core.fs.FileSystemgetDelegateFS()static FileBasedCachegetFileBasedCache(org.apache.flink.configuration.ReadableConfig config, org.apache.flink.core.fs.Path cacheBase, org.apache.flink.core.fs.Path remoteForStPath, long cacheCapacity, long cacheReservedSize, org.apache.flink.metrics.MetricGroup metricGroup)org.apache.flink.core.fs.BlockLocation[]getFileBlockLocations(org.apache.flink.core.fs.FileStatus file, long start, long len)org.apache.flink.core.fs.FileStatusgetFileStatus(org.apache.flink.core.fs.Path path)org.apache.flink.core.fs.PathgetHomeDirectory()MappingEntrygetMappingEntry(org.apache.flink.core.fs.Path path)StringgetRemoteBase()URIgetUri()org.apache.flink.core.fs.PathgetWorkingDirectory()voidgiveUpOwnership(org.apache.flink.core.fs.Path path, org.apache.flink.runtime.state.StreamStateHandle stateHandle)booleanisDistributedFS()intlink(String src, org.apache.flink.core.fs.Path dst)intlink(org.apache.flink.core.fs.Path src, org.apache.flink.core.fs.Path dst)org.apache.flink.core.fs.FileStatus[]listStatus(org.apache.flink.core.fs.Path path)booleanmkdirs(org.apache.flink.core.fs.Path path)ByteBufferReadableFSDataInputStreamopen(org.apache.flink.core.fs.Path dbFilePath)ByteBufferReadableFSDataInputStreamopen(org.apache.flink.core.fs.Path dbFilePath, int bufferSize)voidregisterReusedRestoredFile(String key, org.apache.flink.runtime.state.StreamStateHandle stateHandle, org.apache.flink.core.fs.Path dbFilePath)booleanrename(org.apache.flink.core.fs.Path src, org.apache.flink.core.fs.Path dst)-
Methods inherited from class org.apache.flink.core.fs.FileSystem
create, create, createRecoverableWriter, createRecoverableWriter, getDefaultBlockSize, getDefaultFsUri, getLocalFileSystem, getUnguardedFileSystem, initialize, initialize, initOutPathDistFS, initOutPathLocalFS
-
-
-
-
Constructor Detail
-
ForStFlinkFileSystem
public ForStFlinkFileSystem(org.apache.flink.core.fs.FileSystem delegateFS, String remoteBase, String localBase, @Nullable FileBasedCache fileBasedCache)
-
-
Method Detail
-
get
public static ForStFlinkFileSystem get(URI uri) throws IOException
Returns a reference to theFileSysteminstance for accessing the file system identified by the givenURI.- Parameters:
uri- theURIidentifying the file system.- Returns:
- a reference to the
FileSysteminstance for accessing the file system identified by the givenURI. - Throws:
IOException- thrown if a reference to the file system instance could not be obtained.
-
get
public static ForStFlinkFileSystem get(URI uri, org.apache.flink.core.fs.Path localBase, FileBasedCache fileBasedCache) throws IOException
- Throws:
IOException
-
getFileBasedCache
public static FileBasedCache getFileBasedCache(org.apache.flink.configuration.ReadableConfig config, org.apache.flink.core.fs.Path cacheBase, org.apache.flink.core.fs.Path remoteForStPath, long cacheCapacity, long cacheReservedSize, org.apache.flink.metrics.MetricGroup metricGroup) throws IOException
- Throws:
IOException
-
getDelegateFS
public org.apache.flink.core.fs.FileSystem getDelegateFS()
-
getRemoteBase
public String getRemoteBase()
-
create
public ByteBufferWritableFSDataOutputStream create(org.apache.flink.core.fs.Path path) throws IOException
Create ByteBufferWritableFSDataOutputStream from specific path which supports to write data to ByteBuffer withFileSystem.WriteMode.OVERWRITEmode.- Parameters:
path- The file path to write to.- Returns:
- The stream to the new file at the target path.
- Throws:
IOException- Thrown, if the stream could not be opened because of an I/O, or because a file already exists at that path and the write mode indicates to not overwrite the file.
-
create
public ByteBufferWritableFSDataOutputStream create(org.apache.flink.core.fs.Path dbFilePath, org.apache.flink.core.fs.FileSystem.WriteMode overwriteMode) throws IOException
- Specified by:
createin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
createin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
open
public ByteBufferReadableFSDataInputStream open(org.apache.flink.core.fs.Path dbFilePath, int bufferSize) throws IOException
- Specified by:
openin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
openin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
open
public ByteBufferReadableFSDataInputStream open(org.apache.flink.core.fs.Path dbFilePath) throws IOException
- Specified by:
openin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
openin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
rename
public boolean rename(org.apache.flink.core.fs.Path src, org.apache.flink.core.fs.Path dst) throws IOException- Specified by:
renamein interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
renamein classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
getWorkingDirectory
public org.apache.flink.core.fs.Path getWorkingDirectory()
- Specified by:
getWorkingDirectoryin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
getWorkingDirectoryin classorg.apache.flink.core.fs.FileSystem
-
getHomeDirectory
public org.apache.flink.core.fs.Path getHomeDirectory()
- Specified by:
getHomeDirectoryin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
getHomeDirectoryin classorg.apache.flink.core.fs.FileSystem
-
getUri
public URI getUri()
- Specified by:
getUriin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
getUriin classorg.apache.flink.core.fs.FileSystem
-
exists
public boolean exists(org.apache.flink.core.fs.Path f) throws IOException- Specified by:
existsin interfaceorg.apache.flink.core.fs.IFileSystem- Overrides:
existsin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
getFileStatus
public org.apache.flink.core.fs.FileStatus getFileStatus(org.apache.flink.core.fs.Path path) throws IOException- Specified by:
getFileStatusin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
getFileStatusin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
getFileBlockLocations
public org.apache.flink.core.fs.BlockLocation[] getFileBlockLocations(org.apache.flink.core.fs.FileStatus file, long start, long len) throws IOException- Specified by:
getFileBlockLocationsin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
getFileBlockLocationsin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
listStatus
public org.apache.flink.core.fs.FileStatus[] listStatus(org.apache.flink.core.fs.Path path) throws IOException- Specified by:
listStatusin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
listStatusin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
delete
public boolean delete(org.apache.flink.core.fs.Path path, boolean recursive) throws IOException- Specified by:
deletein interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
deletein classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
mkdirs
public boolean mkdirs(org.apache.flink.core.fs.Path path) throws IOException- Specified by:
mkdirsin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
mkdirsin classorg.apache.flink.core.fs.FileSystem- Throws:
IOException
-
isDistributedFS
public boolean isDistributedFS()
- Specified by:
isDistributedFSin interfaceorg.apache.flink.core.fs.IFileSystem- Specified by:
isDistributedFSin classorg.apache.flink.core.fs.FileSystem
-
link
public int link(org.apache.flink.core.fs.Path src, org.apache.flink.core.fs.Path dst) throws IOException- Throws:
IOException
-
link
public int link(String src, org.apache.flink.core.fs.Path dst) throws IOException
- Throws:
IOException
-
registerReusedRestoredFile
public void registerReusedRestoredFile(String key, org.apache.flink.runtime.state.StreamStateHandle stateHandle, org.apache.flink.core.fs.Path dbFilePath)
-
getMappingEntry
@Nullable public MappingEntry getMappingEntry(org.apache.flink.core.fs.Path path)
-
giveUpOwnership
public void giveUpOwnership(org.apache.flink.core.fs.Path path, org.apache.flink.runtime.state.StreamStateHandle stateHandle)
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
-