繁体   English   中英

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

[英]Flink : Load resource file in cluster mode

我正在运行一个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中后,文件路径将不再可用于访问文件。 相反,您需要使用类似<YourClassName>.class.getResourceAsStream("/my_file.txt")来获取InputStream

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM