spark-submit缺少命令行arugments

时间:2016-11-12 14:30:26

标签: scala apache-spark

在Scala + Spark中,我使用spark-submit来运行一个带有arugments的工作。当试图打印出参数args.foreach(println)时,它将跳过“PROD”并仅输出“/ tmp”和“A-1”。

有什么想法吗?感谢

spark-submit \
--class "com.Main" \
--master yarn-client \
--num-executors 4 \
--driver-memory 16g \
--executor-cores 10 \
--executor-memory 6g \
--jars main.jar PROD /tmp A-1 2>&1 | tee ./log

感谢。

1 个答案:

答案 0 :(得分:0)

使用--jars标记表示您希望将main.jar转移到您的群集(我认为main.jar是您的火花应用程序)。

  

使用spark-submit时,应用程序jar 以及任何jar   包含在--jars选项将自动转移到   集群。在_jars之后提供的URL必须用逗号分隔。

Spark可能假设PROD为你的申请,所以他跳过了这个arg。

请改为尝试:

spark-submit \
--class "com.Main" \
--master yarn-client \
--num-executors 4 \
--driver-memory 16g \
--executor-cores 10 \
--executor-memory 6g \
main.jar PROD /tmp A-1 2>&1 | tee ./log

如果您仍然存在参数问题(像斜杠,管道等奇怪的字符......),您可以尝试使用引号:main.jar PROD "/tmp" "A-1 2>&1 | tee ./log",而在main中它应该是:

args(0) -- PROD
args(1) -- /tmp
args(2) -- A-1 2>&1 | tee ./log