@Internal public class LocalRecoverableFsDataOutputStream extends CommitterFromPersistRecoverableFsDataOutputStream<org.apache.flink.core.fs.local.LocalRecoverable>
RecoverableFsDataOutputStream
for the LocalFileSystem
.RecoverableFsDataOutputStream.Committer
Constructor and Description |
---|
LocalRecoverableFsDataOutputStream(File targetFile,
File tempFile) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this stream.
|
protected RecoverableFsDataOutputStream.Committer |
createCommitterFromResumeRecoverable(org.apache.flink.core.fs.local.LocalRecoverable recoverable) |
void |
flush()
Flushes the stream, writing any data currently buffered in stream implementation to the
proper output stream.
|
long |
getPos()
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.
|
org.apache.flink.core.fs.local.LocalRecoverable |
persist()
Ensures all data so far is persistent (similar to
FSDataOutputStream.sync() ) and returns a handle to
recover the stream at the current position. |
void |
sync()
Flushes the data all the way to the persistent non-volatile storage (for example disks).
|
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
closeForCommit
write
public LocalRecoverableFsDataOutputStream(File targetFile, File tempFile) throws IOException
IOException
public void write(int b) throws IOException
write
in class OutputStream
IOException
public void write(byte[] b, int off, int len) throws IOException
write
in class OutputStream
IOException
public void flush() throws IOException
FSDataOutputStream
A completed flush does not mean that the data is necessarily persistent. Data persistence
can is only assumed after calls to FSDataOutputStream.close()
or FSDataOutputStream.sync()
.
Implementation note: This overrides the method defined in OutputStream
as abstract
to force implementations of the FSDataOutputStream
to implement this method directly.
flush
in interface Flushable
flush
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurs while flushing the stream.public void sync() throws IOException
FSDataOutputStream
sync
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurspublic long getPos() throws IOException
FSDataOutputStream
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
getPos
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurs while obtaining the position from the
stream implementation.public org.apache.flink.core.fs.local.LocalRecoverable persist() throws IOException
RecoverableFsDataOutputStream
FSDataOutputStream.sync()
) and returns a handle to
recover the stream at the current position.persist
in class CommitterFromPersistRecoverableFsDataOutputStream<org.apache.flink.core.fs.local.LocalRecoverable>
IOException
RecoverableFsDataOutputStream.persist()
protected RecoverableFsDataOutputStream.Committer createCommitterFromResumeRecoverable(org.apache.flink.core.fs.local.LocalRecoverable recoverable)
createCommitterFromResumeRecoverable
in class CommitterFromPersistRecoverableFsDataOutputStream<org.apache.flink.core.fs.local.LocalRecoverable>
recoverable
- a resume recoverable to create the committer from. Typically the parameter
is the return value of CommitterFromPersistRecoverableFsDataOutputStream.persist()
.RecoverableFsDataOutputStream.closeForCommit()
public void close() throws IOException
RecoverableFsDataOutputStream
In order to persist all previously written data, one needs to call the RecoverableFsDataOutputStream.closeForCommit()
method and call RecoverableFsDataOutputStream.Committer.commit()
on the returned committer
object.
close
in interface Closeable
close
in interface AutoCloseable
close
in class RecoverableFsDataOutputStream
IOException
- Thrown if an error occurred during closing.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.