正在尝试运行Spark流作业[Parent Job],根据某些条件,另一个Spark提交[Child Job]会通过现有的父作业动态构建并提交。 子工作似乎因
而失败Exception in thread "main" java.lang.IllegalArgumentException: Invalid properties file 'filename'
在进行此操作时,我们发现该文件在提交子作业的节点中不存在。因此,作为一种变通方法,我们将文件放在HDFS中,并在spark提交中提供了位置,但仍然无法识别它。
spark-submit --name "Child_Job" --master yarn --deploy-mode cluster --executor-cores 2 --driver-cores 1 --driver-memory 2g --num-executors 2 --executor-memory 1g --archives "HDFS_FILE1#FILE1,HDFS_FILE2.zip#FILE2" --properties-file "HDFS_PROPERTY_FILE" --py-files "HDFS_FILE2.zip" FILE2/Test.py
或者尝试--archives
和--files
还是没有运气,无法引用spark提交中的文件。
--files和--archives选项支持使用以下命令指定文件名 #与Hadoop类似。例如,您可以指定:--files localtest.txt#appSees.txt,这将上传您拥有的文件 本地命名为localtest.txt到HDFS,但这将通过 名称为appSees.txt,您的应用程序应使用以下名称: 在YARN上运行时,appSees.txt可以引用它。
任何建议或解决方法都将非常有用,请告知我是否需要更多信息。