yuemeng created FLINK-20935:
-------------------------------

             Summary: can't write flink configuration to tmp file and add it to 
local resource in yarn session mode
                 Key: FLINK-20935
                 URL: https://issues.apache.org/jira/browse/FLINK-20935
             Project: Flink
          Issue Type: Bug
          Components: Deployment / YARN
    Affects Versions: 1.12.0, 1.13.0
            Reporter: yuemeng


In flink 1.12.0 or lastest version,when we execute command such asĀ 
bin/yarn-session.sh -n 20 -jm 9096 -nm 4096 -st,the depoy will be failed with 
follow errors:
{code}
org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy 
Yarn session cluster
        at 
org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:411)
        at 
org.apache.flink.yarn.cli.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:498)
        at 
org.apache.flink.yarn.cli.FlinkYarnSessionCli.lambda$main$4(FlinkYarnSessionCli.java:730)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1754)
        at 
org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
        at 
org.apache.flink.yarn.cli.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:730)
Caused by: java.io.FileNotFoundException: File does not exist: 
/tmp/application_1573723355201_0036-flink-conf.yaml688141408443326132.tmp
        at 
org.apache.hadoop.hdfs.DistributedFileSystem$22.doCall(DistributedFileSystem.java:1309)
{code}

when we called startAppMaster method in YarnClusterDescriptor,it will be try to 
write flink configuration to tmp file and add it to local resource. but the 
follow code will make the tmp file system as a distribute file system
{code}
// Upload the flink configuration
                // write out configuration file
                File tmpConfigurationFile = null;
                try {
                        tmpConfigurationFile = File.createTempFile(appId + 
"-flink-conf.yaml", null);
                        BootstrapTools.writeConfiguration(configuration, 
tmpConfigurationFile);

                        String flinkConfigKey = "flink-conf.yaml";
                        fileUploader.registerSingleLocalResource(
                                flinkConfigKey,
                                new 
Path(tmpConfigurationFile.getAbsolutePath()),
                                "",
                                LocalResourceType.FILE,
                                true,
                                true);
                        
classPathBuilder.append("flink-conf.yaml").append(File.pathSeparator);
                } finally {
                        if (tmpConfigurationFile != null && 
!tmpConfigurationFile.delete()) {
                                LOG.warn("Fail to delete temporary file {}.", 
tmpConfigurationFile.toPath());
                        }
                }
{code}

{code} tmpConfigurationFile.getAbsolutePath() {code} method will be return a 
path without file schema and the file system will be considered as a distribute 
file system







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

Reply via email to