Java Flink:以群集模式加载资源文件

Java Flink:以群集模式加载资源文件,java,apache-flink,Java,Apache Flink,我运行的Flink代码在本地(IntelliJ)执行时运行良好,但在Flink集群中运行时崩溃: org.apache.flink.client.program.ProgramInvocationException: The main method caused an error. 在初始化作业时,我加载了一个文本文件,该文件嵌入到jar文件中,代码如下: try (InputStream is = new FileInputStream(new File("src/main/resource

我运行的Flink代码在本地(IntelliJ)执行时运行良好,但在Flink集群中运行时崩溃:

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error.
在初始化作业时,我加载了一个文本文件,该文件嵌入到jar文件中,代码如下:

try (InputStream is = new FileInputStream(new File("src/main/resources/my_file.txt"))) {
            myObject = new MyClass.Parser().parse(is);
}catch (final Exception e) {
            LOGGER.error("Error while trying to file : "+e.getMessage(), e);
}
然后,从文本文件内容创建的对象用于创建我的源和接收器,并在映射函数中执行一些内部计算

如何在群集模式下正确加载此文件

编辑:

当我将上面的代码替换为

myObject = new MyClassParser().parse(FILE_CONTENT_AS_STRING);

代码运行良好。看起来只有加载文件才会导致错误。

一旦将代码构建到jar中,文件路径就不能再用于访问文件。相反,您需要使用类似于
.class.getResourceAsStream(“/my_file.txt”)
的东西来获取
InputStream

您能发布Flink Crasht的整个堆栈跟踪吗这是我在Flink Web Dashboard上运行JAR时唯一能看到的日志。