Spark:尝试运行spark-shell,但得到'cmd'不被认为是内部或

时间:2015-06-21 13:15:59

标签: apache-spark

我正在尝试在Windows桌面上安装Spark。一切都应该工作正常,但我得到一个错误“'cmd'不被识别为内部或外部命令......”

我安装了Scala,Java JDK并在C:\中解压缩了Spark tgz,但由于某些原因无法让Spark在cmd中启动。有任何想法吗?

11 个答案:

答案 0 :(得分:10)

我的同事解决了这个问题。虽然Java似乎工作正常(参考图片),但是Spark尝试读取的Java路径在最后添加了一个额外的\ bin是不正确的。当它被删除后,Spark开始工作了! @gonbe,非常感谢你帮助我们的努力!

答案 1 :(得分:5)

我有类似的错误。我在修改后修改了它:

  1. 系统路径中有多个Java / bin路径。所以我更正了它们以反映单个Java / Bin,它与JAVA_HOME
  2. 同步
  3. 将C:Windows \ system32添加到系统路径变量。
  4. 我的Java_Home和java.exe指向不同的地方。我修好了他们。
  5. 现在可行。

    谢谢你们。

答案 2 :(得分:4)

(我不是Windows Spark用户) 用于Windows源代码的spark-shell.cmd需要" cmd"命令在PATH中可用。

https://github.com/apache/spark/blob/master/bin/spark-shell.cmd

您是否尝试添加包含" cmd.exe"的目录?在PATH环境变量?目录位置在屏幕截图中显示标题栏,环境变量设置可以通过控制面板完成。

答案 3 :(得分:2)

检查JAVA_HOME中的值并确保它指向正确的值。在路径值中添加%JAVA_HOME%/ bin。修改后关闭命令提示符并重新启动它。写下spark-shell它会运行。

答案 4 :(得分:1)

我的所有变量都没问题,所以我决定调试脚本,我在“spark-class2.cmd”中找到并在“%RUNNERS%”中添加另一对引号。 之前 “%RUNNER%” - Xmx128m -cp“%LAUNCH_CLASSPATH%”.... 后 “”%RUNNER%“” - Xmx128m -cp“%LAUNCH_CLASSPATH%”....

答案 5 :(得分:1)

我在命令提示符下执行Spark-shell时遇到了同样的错误。

我尝试了上面提到的所有内容,但无法解决问题。

所以,最后我添加了" C:\ Windows \ System32"在' PATH'系统变量的变量,它起作用了。

答案 6 :(得分:0)

对于我的情况,我有类似的问题。我不得不解决一些问题。

1-检查两个地方的 JAVA_HOME 是否正确;

enter image description here

enter image description here

2-然后我不得不更改 spark-2.1.1-bin-hadoop2.7 \ bin 文件夹中的以下行。

enter image description here

  • 在"%RUNNER%"周围添加额外的引号。所以它会像""%RUNNER%""
  • 然后再次执行。\ spark-shell.cmd。

enter image description here

答案 7 :(得分:0)

根据下面的版本兼容性表检查java jdk版本和scala版本:

enter image description here

答案 8 :(得分:0)

我遇到了同样的问题(启动spark-shell并得到系统找不到路径) 完成上述过程后(更改spark_home以排除/ bin即可正常工作 感谢大家的分享

答案 9 :(得分:0)

这些是解决Windows中所有这些问题的详细步骤

火花二进制文件

  1. 它必须位于没有空间的文件夹中(如果必须存在) 在有空间的文件夹中,那么您可以使用Unix的文件夹 符号链接。我将Spark二进制文件直接保存在c:\中。组 SPARK_HOME,例如C:\ SparkMedia \ spark-2.4.2-bin-hadoop2.7。请 请注意,“ bin”不是路径的一部分。
  2. 将用户和系统的“路径”设置为%SPARK_HOME%\ bin(如果您决定) 将其保存在“程序文件”之外(按照a点),然后请 向用户授予权限,因为Spark保留临时文件 这里。如果要将Spark保留在用户所在的目录中 没有访问权限,那么您需要放入一个文件 %SPARK_HOME%\ conf \ spark-env.sh,其中的条目为 “ SPARK_LOG_DIR =用户可以访问的目录”。

Winutils

  1. 它可以位于具有C:\ Program Files这样的空间的文件夹中 (x86)\ Winutils您的winutils保存在C:\ Program Files(x86)\ Winutils 工作正常。
  2. 将HADOOP_HOME设置为C:\ Program Files(x86)\ Winutils。请注意 “ bin”不是路径的一部分。
  3. 将用户和系统的“路径”设置为%HADOOP_HOME%\ bin

Java

  1. 它可以位于具有C:\ Program这样的空间的文件夹中 Files \ AdoptOpenJDK \ jdk-8.0.262.10-hotspot将JAVA_HOME设置为 C:\ Program Files \ AdoptOpenJDK \ jdk-8.0.262.10-hotspot。请注意 “ bin”不是路径的一部分。

  2. 将用户和系统的“路径”设置为%JAVA_HOME%\ bin

通过上述设置,用户应该只需键入“ spark-shell”,火花外壳便应启动。

答案 10 :(得分:0)

spark-shell 命令运行 spark 'bin' 文件夹中的 spark-shell.cmd 文件。此文件包含以下命令 cmd /V /E /C ""%~dp0spark-shell2.cmd" %*"

cmd 命令要求将 path 系统变量设置为 %SystemRoot%\system32