我写了一个使用一些配置文件的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权限的消息。因此,它似乎可以访问此文件,但无法获得所需的权限。
有什么不对?
答案 0 :(得分:0)
好的,我已经弄明白了。上传的文件被添加到驱动程序的类路径中,因此可以作为资源访问:
val config = ConfigFactory.parseResources("app.conf")