【发布时间】:2020-03-13 01:59:10
【问题描述】:
我用 Java 编写了一个 Spark 作业。作业被打包为带阴影的 jar 并执行:
spark-submit my-jar.jar
在代码中,有一些文件(Freemarker 模板)位于src/main/resources/templates。在本地运行时,我可以访问文件:
File[] files = new File("src/main/resources/templates/").listFiles();
作业在集群上运行时,执行上一行时返回空指针异常。
如果我运行jar tf my-jar.jar,我可以看到文件打包在templates/ 文件夹中:
[...]
templates/
templates/my_template.ftl
[...]
我只是无法阅读它们;我怀疑.listFiles() 试图访问集群节点上的本地文件系统,但文件不存在。
我很想知道我应该如何打包文件以在独立的 Spark 作业中使用。我宁愿不在工作之外将它们复制到 HDFS,因为维护起来很麻烦。
【问题讨论】:
-
你能告诉你的主人是什么吗?以及您使用的是哪种部署模式?
标签: java apache-spark