You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Rui Li (Jira)" <ji...@apache.org> on 2020/01/09 08:09:00 UTC

[jira] [Updated] (FLINK-15533) Writing DataStream as text file fails due to output path already exists

     [ https://issues.apache.org/jira/browse/FLINK-15533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rui Li updated FLINK-15533:
---------------------------
    Description: 
The following program reproduces the issue.
{code}
    Configuration configuration = GlobalConfiguration.loadConfiguration();
    configuration.set(DeploymentOptions.TARGET, RemoteExecutor.NAME);
    StreamExecutionEnvironment streamEnv = new StreamExecutionEnvironment(configuration);

    DataStream dataStream = streamEnv.fromCollection(Arrays.asList(1,2,3));
    dataStream.writeAsText("hdfs://localhost:8020/tmp/output");

    streamEnv.execute();
{code}
The job will fail with the follow error, even though the output path doesn't exist before job submission:
{noformat}
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException): /tmp/output already exists as a directory
{noformat}

  was:
The following program reproduces the issue.
{code}
Configuration configuration = GlobalConfiguration.loadConfiguration();
    configuration.set(DeploymentOptions.TARGET, RemoteExecutor.NAME);
    StreamExecutionEnvironment streamEnv = new StreamExecutionEnvironment(configuration);
    EnvironmentSettings settings =
        EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
    TableConfig tableConfig = new TableConfig();
    StreamTableEnvironment tableEnv = StreamTableEnvironmentImpl.create(streamEnv, settings,
        tableConfig);

    tableEnv
        .connect(new FileSystem().path("file:///path/to/csv"))
        .withSchema(new Schema().field("f1", DataTypes.INT()).field("f2", DataTypes.INT()))
        .withFormat(new OldCsv().fieldDelimiter(","))
        .registerTableSource("src");

    DataStream dataStream = tableEnv.toAppendStream(tableEnv.from("src"), Row.class);
    dataStream.writeAsText("hdfs://localhost:8020/tmp/output");

    streamEnv.execute();
{code}
The job will fail with the follow error, even though the output path doesn't exist before job submission:
{noformat}
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException): /tmp/output already exists as a directory
{noformat}


> Writing DataStream as text file fails due to output path already exists
> -----------------------------------------------------------------------
>
>                 Key: FLINK-15533
>                 URL: https://issues.apache.org/jira/browse/FLINK-15533
>             Project: Flink
>          Issue Type: Bug
>            Reporter: Rui Li
>            Priority: Major
>
> The following program reproduces the issue.
> {code}
>     Configuration configuration = GlobalConfiguration.loadConfiguration();
>     configuration.set(DeploymentOptions.TARGET, RemoteExecutor.NAME);
>     StreamExecutionEnvironment streamEnv = new StreamExecutionEnvironment(configuration);
>     DataStream dataStream = streamEnv.fromCollection(Arrays.asList(1,2,3));
>     dataStream.writeAsText("hdfs://localhost:8020/tmp/output");
>     streamEnv.execute();
> {code}
> The job will fail with the follow error, even though the output path doesn't exist before job submission:
> {noformat}
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException): /tmp/output already exists as a directory
> {noformat}



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