Package org.apache.flink.core.fs.local
Class LocalRecoverableFsDataOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.flink.core.fs.FSDataOutputStream
-
- org.apache.flink.core.fs.RecoverableFsDataOutputStream
-
- org.apache.flink.core.fs.local.LocalRecoverableFsDataOutputStream
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
@Internal public class LocalRecoverableFsDataOutputStream extends RecoverableFsDataOutputStream
ARecoverableFsDataOutputStreamfor theLocalFileSystem.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.core.fs.RecoverableFsDataOutputStream
RecoverableFsDataOutputStream.Committer
-
-
Constructor Summary
Constructors Constructor Description LocalRecoverableFsDataOutputStream(File targetFile, File tempFile)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this stream.RecoverableFsDataOutputStream.CommittercloseForCommit()Closes the stream, ensuring persistence of all data (similar toFSDataOutputStream.sync()).voidflush()Flushes the stream, writing any data currently buffered in stream implementation to the proper output stream.longgetPos()Gets the position of the stream (non-negative), defined as the number of bytes from the beginning of the file to the current writing position.RecoverableWriter.ResumeRecoverablepersist()Ensures all data so far is persistent (similar toFSDataOutputStream.sync()) and returns a handle to recover the stream at the current position.voidsync()Flushes the data all the way to the persistent non-volatile storage (for example disks).voidwrite(byte[] b, int off, int len)voidwrite(int b)-
Methods inherited from class java.io.OutputStream
nullOutputStream, write
-
-
-
-
Constructor Detail
-
LocalRecoverableFsDataOutputStream
public LocalRecoverableFsDataOutputStream(File targetFile, File tempFile) throws IOException
- Throws:
IOException
-
-
Method Detail
-
write
public void write(int b) throws IOException- Specified by:
writein classOutputStream- Throws:
IOException
-
write
public void write(byte[] b, int off, int len) throws IOException- Overrides:
writein classOutputStream- Throws:
IOException
-
flush
public void flush() throws IOExceptionDescription copied from class:FSDataOutputStreamFlushes the stream, writing any data currently buffered in stream implementation to the proper output stream. After this method has been called, the stream implementation must not hold onto any buffered data any more.A completed flush does not mean that the data is necessarily persistent. Data persistence can is only assumed after calls to
FSDataOutputStream.close()orFSDataOutputStream.sync().Implementation note: This overrides the method defined in
OutputStreamas abstract to force implementations of theFSDataOutputStreamto implement this method directly.- Specified by:
flushin interfaceFlushable- Specified by:
flushin classFSDataOutputStream- Throws:
IOException- Thrown if an I/O error occurs while flushing the stream.
-
sync
public void sync() throws IOExceptionDescription copied from class:FSDataOutputStreamFlushes the data all the way to the persistent non-volatile storage (for example disks). The method behaves similar to the fsync function, forcing all data to be persistent on the devices.- Specified by:
syncin classFSDataOutputStream- Throws:
IOException- Thrown if an I/O error occurs
-
getPos
public long getPos() throws IOExceptionDescription copied from class:FSDataOutputStreamGets the position of the stream (non-negative), defined as the number of bytes from the beginning of the file to the current writing position. The position corresponds to the zero-based index of the next byte that will be written.This method must report accurately report the current position of the stream. Various components of the high-availability and recovery logic rely on the accurate
- Specified by:
getPosin classFSDataOutputStream- Returns:
- The current position in the stream, defined as the number of bytes from the beginning of the file to the current writing position.
- Throws:
IOException- Thrown if an I/O error occurs while obtaining the position from the stream implementation.
-
persist
public RecoverableWriter.ResumeRecoverable persist() throws IOException
Description copied from class:RecoverableFsDataOutputStreamEnsures all data so far is persistent (similar toFSDataOutputStream.sync()) and returns a handle to recover the stream at the current position.- Specified by:
persistin classRecoverableFsDataOutputStream- Throws:
IOException
-
closeForCommit
public RecoverableFsDataOutputStream.Committer closeForCommit() throws IOException
Description copied from class:RecoverableFsDataOutputStreamCloses the stream, ensuring persistence of all data (similar toFSDataOutputStream.sync()). This returns a Committer that can be used to publish (make visible) the file that the stream was writing to.- Specified by:
closeForCommitin classRecoverableFsDataOutputStream- Throws:
IOException
-
close
public void close() throws IOExceptionDescription copied from class:RecoverableFsDataOutputStreamCloses this stream. Closing the steam releases the local resources that the stream uses, but does NOT result in durability of previously written data. This method should be interpreted as a "close in order to dispose" or "close on failure".In order to persist all previously written data, one needs to call the
RecoverableFsDataOutputStream.closeForCommit()method and callRecoverableFsDataOutputStream.Committer.commit()on the returned committer object.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classRecoverableFsDataOutputStream- Throws:
IOException- Thrown if an error occurred during closing.
-
-