我有时通过相对较慢的连接使用spark-submit将作业提交到在Yarn上运行的Spark集群。为了避免为每个作业上传156MB spark-assembly文件,我将配置选项spark.yarn.jar
设置为HDFS上的文件。但是,这不会避免上传,而是从HDFS Spark目录中获取程序集文件并将其复制到应用程序目录:
$:~/spark-1.4.0-bin-hadoop2.6$ bin/spark-submit --class MyClass --master yarn-cluster --conf spark.yarn.jar=hdfs://node-00b/user/spark/share/lib/spark-assembly.jar my.jar
[...]
15/07/06 21:25:43 INFO yarn.Client: Uploading resource hdfs://node-00b/user/spark/share/lib/spark-assembly.jar -> hdfs://nameservice1/user/XXX/.sparkStaging/application_1434986503384_0477/spark-assembly.jar
我原本希望汇编文件应该在HDFS中复制,但实际上它似乎是再次下载和上传,这非常适得其反。有关于此的任何提示吗?
答案 0 :(得分:3)
两个HDFS都必须是同一个系统。请在此处查看相关代码:
为什么你不能在nameservice1 HDFS上使用spark程序集jar?