【发布时间】:2020-11-02 01:54:03
【问题描述】:
我有一个用 Java 编写的非常小的 Spark 应用程序,我正在尝试使用 spark-submit 在 K8s 集群中运行它。我用 Spark 二进制文件、我的 uber-JAR 文件以及所有必要的依赖项(/opt/spark/jars/my.jar)和一个配置文件(/opt/spark/conf/some.json)构建了一个映像。
在我的代码中,我从
开始SparkSession session = SparkSession.builder()
.appName("myapp")
.config("spark.logConf", "true")
.getOrCreate();
Path someFilePath = FileSystems.getDefault().getPath("/opt/spark/conf/some.json");
String someString = new String(Files.readAllBytes(someFilePath));
并从 Spark 驱动程序readAllBytes 获取此异常:
java.nio.file.NoSuchFileException: /opt/spark/conf/some.json
如果我手动运行我的 Docker 映像,我绝对可以看到文件 /opt/spark/conf/some.json,正如我所期望的那样。我的 Spark 作业以 root 身份运行,因此文件权限应该不是问题。
我一直假设,由于同一个 Docker 映像,文件确实存在,将用于启动驱动程序(和执行程序,但我什至没有达到这一点),该文件应该可用于我的应用程序。不是这样吗?为什么它看不到文件?
【问题讨论】:
-
请分享您的镜像,以 YAML 格式分享您的 kubernetes 部署/pod?
标签: java apache-spark kubernetes spark-submit nosuchfileexception