为什么在 Windows 上,spark-shell 会失败并显示“'”“C:\Program' 未被识别为内部或外部命令”?

问题描述 投票:0回答:10

运行以下命令提示符时,我收到屏幕截图中所示的错误。

screenshot

命令:

c:\spark>spark-shell

错误:

'""C:\Program' is not recognized as an internal or external command,
operable program or batch file.

为什么?

windows apache-spark
10个回答
15
投票

苏普里特,

问题很可能出在您的 JAVA_HOME 空间上。 如果路径包含空格,请使用缩短的路径名。例如,

C:\Progra~1\Java\jdk1.8.0_131

如果您使用的是Windows10。请尝试以下

Set JAVA_HOME as "C:\Progra~1\Java\jdk1.8.0_131"

还要确保您已将

%JAVA_HOME%\bin
包含在 PATH 环境变量中。


2
投票

怀疑您将Java安装到带有空格的目录中,因此

JAVA_HOME
破坏了Windows上的
spark-shell
脚本。

确保将 Java 安装到路径中没有空格的目录中。


另一个选项是将

JAVA_HOME
设置为相同的值,但用双引号引起来,例如

set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_131"

这可能会导致 Windows 上的另一个问题,该问题在 为什么 Spark-shell 失败并显示“此时意外”?这只是将 Java 重新安装到路径中没有空格的目录中。


我还无法检查的事情是使用单引号(而不是双引号)包裹

JAVA_HOME
。与
"x"
相比,理论上这将有助于通过该线。


2
投票

首先你要找出你的JAVA_HOME在哪里。就我而言,它是“C:\Program Files\Java\jdk1.8.0_25 in\java”

然后打开名为spark-class2.cmd的文件,找到并更改为您的java主路径(仅更改下面的粗体文本)。

包含其他文本只是为了完整性。

C:\ Program Files \ Java \ jdk1.8.0_25 in \ java”-Xmx128m -cp“%LAUNCH_CLASSPATH%”org.apache.spark.launcher.Main%*>%LAUNCHER_OUTPUT% for /f "tokens=*" %%i in (%LAUNCHER_OUTPUT%) do ( 回显%%i 设置 SPARK_CMD=%%i ) 删除%LAUNCHER_OUTPUT% %SPARK_CMD%


2
投票

我也有同样的问题。我卸载了 java 并安装在

C:\Java
文件夹中,更改了所需的环境设置,它对我有用!!!


2
投票

我也有同样的问题。 版本

spark-2.1.1-bin-hadoop2.7
会出现这种情况,但之前的版本
spark-2.1.0-bin-hadoop2.7
不会出现这种情况。

编辑

spark-2.1.1-bin-hadoop2.7/bin/spark-class2.cmd
的第 54 行,删除引号:

set RUNNER=%JAVA_HOME%\bin\java

然后它应该可以工作。


1
投票

您在某个地方设置了路径或变量,但没有将其用双引号引起来。因此,路径在第一个空间上被分割。

C:\Program Files\Whatever

已经成为...

C:\Program

要修复它,您需要确保将路径变量用双引号引起来。

C:\Program Files\Whatever\Foo\My Bar\bin

应该是

"C:\Program Files\Whatever\Foo\My Bar\bin"

或者更好地使用用户路径的环境变量。例如

"%PROGRAMFILES(X86)%\Whatever\Foo\My Bar\bin"
"%PROGRAMFILES%\Whatever\Foo\My Bar\bin"

0
投票

您需要设置环境变量才能从任何目录使用

spark-shell

或者你需要进入

bin
文件夹来执行
spark-shell
命令 就我而言,它在里面
/spark/spark-2.0.2-bin-hadoop2.7/bin/


0
投票

设置所有路径后,我遇到了同样的错误。 所以你有类型 Space Spark-shell c:\spark> 火花外壳 会起作用的

跟着我的脚步

  1. 下载适用于 Windows 的 JDK 8
  2. 安装Java开发环境
  3. 下载带有预构建 Hadoop 的最新版本的 Spark
  4. 下载WinRar进行解压
  5. 在C导出中制作文件夹放入spark文件夹
  6. 转到 Spark 中的 Conf 文件夹
  7. 更改 log4j.propreties 的格式
  8. 在word中打开Log4 ..
  9. 将信息替换为错误
  10. 保存该文件
  11. 下载Winutils
  12. 在 C 派生中创建新文件夹作为 Winutils
  13. 将下载的 winutils 文件粘贴到 bin 文件夹中
  14. 在Windows中设置环境
  15. 控制面板
  16. 单击系统和安全
  17. 系统
  18. 高级系统设置
  19. 环境变量
  20. (设置 Spark Home)-新
  21. 新用户_变量表
  22. 变量_名称- SPARK_Home
  23. 路径:- C:\Spark(C 派生中的 Spark foder)
  24. (设置 Java Home )- 新
  25. JAVA_HOME
  26. Java 文件夹路径 –(第一个 java 文件夹)
  27. 设置 Hadoop 路径 –
  28. HADOOP_HOME
  29. 路径- C:\Wintulis
  30. 路径目录
  31. 路径-编辑
  32. 新 - %SPARK_HOME% 于
  33. 新 - %SPARK_HOME% 位于
  34. 系统环境完成

0
投票

在Windows中,当您安装java 8时,路径将为C:\Program Files\Java\jre1.8.0_431 它不会有 JDK 文件夹。如果您将其添加到环境变量中, %JAVA_HOME% C:\Program Files\Java\jre1.8.0_431

并且值应该在路径中: %JAVA_HOME%/bin

它对我有用。希望它也适合你


-1
投票

您必须按照this或任何其他教程在环境变量中设置spark的路径。

另一种选择是进入包含spark-shell的目录并直接执行它。

希望这有帮助,最好的问候

© www.soinside.com 2019 - 2024. All rights reserved.