Apache spark:上传到作业暂存目录的文件的权限被拒绝

Apache spark: permission denied for files uploaded to job's staging directory

我写了一个使用一些配置文件的 apache spark 作业。当我 运行 在本地完成这项工作时,它工作正常。但是,当我将此作业提交到 YARN 集群时,它失败并显示 java.io.FileNotFoundException: (Permission denied)

我使用以下命令提交作业:

bin/spark-submit --master yarn --deploy-mode cluster --num-executors 1 --files /home/user/app.conf --class org.myorg.PropTest assembly.jar

它将 assembly.jar 和 app.conf 文件上传到我在 HDFS 上的主目录中的 .sparkStaging 目录的子目录。

我正在尝试访问以下行中的 app.conf 文件:

ConfigFactory.parseFile(new File("app.conf"))

当我上传名称不是 app.conf 的文件时,它按预期失败并出现 FileNotFoundException。

但是当我上传 app.conf 时,它也失败并出现 FileNotFoundException,但消息是 ./app.conf 的权限被拒绝。因此,它似乎可以访问此文件,但无法获得所需的权限。

有什么问题吗?

好的,我知道了。上传的文件被添加到驱动程序的类路径中,因此可以作为资源访问:

val config = ConfigFactory.parseResources("app.conf")