Julien Cuquemelle created FLINK-9245:
----------------------------------------
Summary: Can't create a BucketingSink with a provided Configuration if no hadoop defaults
Key: FLINK-9245
URL:
https://issues.apache.org/jira/browse/FLINK-9245 Project: Flink
Issue Type: Bug
Components: Streaming Connectors
Affects Versions: 1.4.2
Reporter: Julien Cuquemelle
We build Integration tests using this kind of code:
{code:java}
val bucketingSink = new BucketingSink[Row](s"hdfs:///user/${System.getenv("USER")}/application_name/") bucketingSink.setFSConfig(hadoopRule.getConfiguration.hdfs) bucketingSink.setBucketer(new DateTimeBucketer[Row]("yyyy-MM-dd--HHmm")) outpuStream.addSink(bucketingSink)
{code}
Here, the hadoopRule is providing a valid hdfs config that should allows this kind of code to run on a machine with no HADOOP_HOME or HADOOP_CONF_DIR set up, like a developper workstation or a Jenkins slave.
When running this code on such a machine, the .createHadoopFileSystem(...) fails with
{noformat}
The given file system URI (hdfs:///user/$USER/application_name/) did not describe the authority
at org.apache.flink.runtime.fs.hdfs.HadoopFsFactory.create(HadoopFsFactory.java:149)
at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:401){noformat}
because it tries to instantiate the fileSystem from a default configuration in .getUnguardedFileSystem() ; as the default conf doesn't exist, the default filesystem resolves to "file:///" and the checks of the consistency of the URI fails because no authority can be found So the whole filesystem creation fails before actually trying to use the provided config.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)