我对 Flink 有一个奇怪的问题:在工作中,我必须用预编译的资源文件初始化一个对象。并且在作业开始后,它在第一时间运行没有问题。但是当我再次像第一次一样使用 Web 界面访问它时,我的对象无法初始化,错误是:
java.nio.file.NoSuchFileException: hdfs:/.../.../my_file
这让我感到困惑,因为文件在那里并且对象第一次成功初始化。相关代码为:
Config.load(Files.newBufferedReader(
Paths.get("hdfs:///xx/xx/myconfig.cfg"),
StandardCharsets.UTF_8));
如果资源在本地系统上并且我运行具有相同作业的本地服务器,我不会遇到任何问题。那么有人有任何线索吗?
编辑:完整跟踪
Caused by: java.nio.file.NoSuchFileException: hdfs:/path/to/xx.cfg
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at java.nio.file.Files.newBufferedReader(Files.java:2784)
at myObject(myObject.java:364)
at myclass$mymethod.map(myclass.java:126)
at myclass$mymethod.map(myclass.java:1)
at org.apache.flink.streaming.api.operators.StreamMap.processElement(StreamMap.java:35)
at org.apache.flink.streaming.runtime.tasks.OutputHandler$CopyingOperatorCollector.collect(OutputHandler.java:272)
... 7 more