You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "todd (Jira)" <ji...@apache.org> on 2021/08/11 12:00:00 UTC

[jira] [Created] (FLINK-23725) HadoopFsCommitter, Prompt for file rename failure

todd created FLINK-23725:
----------------------------

             Summary: HadoopFsCommitter, Prompt for file rename failure
                 Key: FLINK-23725
                 URL: https://issues.apache.org/jira/browse/FLINK-23725
             Project: Flink
          Issue Type: Bug
          Components: Connectors / FileSystem, Connectors / Hadoop Compatibility
    Affects Versions: 1.12.1, 1.11.1
            Reporter: todd


When the HDFS file is written, if the part file exists, only false will be returned if the duplicate name fails.Whether to throw an exception that already exists in the part, or print related logs.

 

```

org.apache.flink.runtime.fs.hdfs.HadoopRecoverableFsDataOutputStream.HadoopFsCommitter#commit

 

public void commit() throws IOException {
 final Path src = recoverable.tempFile();
 final Path dest = recoverable.targetFile();
 final long expectedLength = recoverable.offset();

 final FileStatus srcStatus;
 try {
 srcStatus = fs.getFileStatus(src);
 } catch (IOException e) {
 throw new IOException("Cannot clean commit: Staging file does not exist.");
 }

 if (srcStatus.getLen() != expectedLength) {
 // something was done to this file since the committer was created.
 // this is not the "clean" case
 throw new IOException("Cannot clean commit: File has trailing junk data.");
 }

 try {
 // return false or ture
 fs.rename(src, dest);
 } catch (IOException e) {
 throw new IOException(
 "Committing file by rename failed: " + src + " to " + dest, e);
 }
}

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)