在Windows

时间:2017-06-15 22:55:58

标签: java apache-spark

我正在研究一台试图在一个jar文件上运行spark-submit的Windows机器,这个文件是由一位同事给我的,他在使用相同的命令在他的计算机上运行它没有任何问题。该命令如下所示:

spark-submit.cmd --driver-java-options "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -DMASTERNODE=local" --class=MYCLASS file:///path/myjar.jar

然而,当我运行这个时,我得到错误:

  

文件名,目录名或卷标语法不正确。

如果我只传递第一个参数,即:

spark-submit.cmd --driver-java-options "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" --class=MYCLASS file:///path/myjar.jar

无论我是否使用引号,我都没有错误。看来命令运行成功。但是,当我尝试将两个参数传递给te commandas时:

cmd /C spark-submit.cmd --driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5008 -DMASTERNODE=local --class=taka.pipelines.AnomalyTxTrainingPipeline file:///cygdrive/c/Users/paul/stream/build/libs/taka-stream-0.1.0-dev_pl-SNAPSHOT-all.jar

我收到错误:

  

错误:无法识别的选项:-DMASTERNODE = local

无论我是使用cmd函数从cygwin执行命令,还是直接从windows命令提示符执行命令,都会发生这种情况。

Coule有人请帮帮我?

-Paul

1 个答案:

答案 0 :(得分:1)

这是spark windows命令脚本的错误,它无法处理带引号的参数,将spark-submit.cmd更改为以下内容:

cmd /V /E /C "<command>" %*

包含

的spark中的所有其他Windows命令脚本

Statement

有同样的问题,用上面类似的方法修复它。