我有一个火花应用程序,我运行的命令是
/usr/hdp/spark2-client/bin/spark-submit \
--name 'App' \
--class 'someFolder.SomeApp \
--master "yarn" \
--deploy-mode "cluster" \
--num-executors 4 \
--executor-cores 3 \
--executor-memory 4g \
--conf spark.sql.shuffle.partitions=10 \
--conf spark.default.parallelism=10 \
--files 'hdfs:///file1','hdfs:///file2' \
'assembly-0.25.0-3-ge05360d.jar' \
'param1' 'param2'
但现在我想在ozie中运行它。我的问题是--我怎样才能表示这样的参数呢?--files
那是一个文件列表,在 job.properties
文件?
如果你通过ozie动作shell运行,那么。
<file>hdfs:///file1#file1</file>
<file>hdfs:///file2#file2</file>
有一个方法可以做到这一点,那就是把所有这些都放在一个shell脚本中,然后调用shell脚本(从ozie)来启动spark应用(当然要把shell脚本移到一些hdfs的位置)。
使用此链接将文件复制到容器中。https:/stackoverflow.coma223959181416616。
如果上面的方法不奏效,-files 'hdfs:/file1','hdfs:/file2'在shell脚本中应该是有效的。
在您的火花应用日志中 始终 查看容器的内容,以确保所需的文件被复制到容器中。
给它一个尝试。