火花发射:查找版本

我的环境是Windows 7,安装了scala 2.11.4(运行良好),Java 1.8

我已经试过了spark-1.2.0-bin-hadoop2.4和spark-1.2.1-bin-hadoop2.4,每次我把

bin\spark-shell.cmd 

我刚刚从Windows中得到错误:

 find: 'version': No such file or directory else was unexpected at this time. 

我在这里忽略了什么吗?

非常感谢。

更新:(来自spark-class2.cmd)

 C:\Users\spark-1.2.1-bin-hadoop2.4>for /F "tokens=3" %i in ('java -version 2>&1 | find "version"') do set jversi on=%i find: 'version': No such file or directory else was unexpected at this time. 

如果我尝试java版本,它似乎在Java方面工作

 C:\Users\spark-1.2.1-bin-hadoop2.4>java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) 

我已经解决了这个问题。 这是我的解决方案。

我已经安装了cygwin,PATH系统变量指向C:\ cygwin64 \ bin \,其中有一个find.exe。

因此,spark-class2.cmd中的行

 for /f "tokens=3" %%i in ('java -version 2^>^&1 ^| find "version"') do set jversion=%%i 

没有使用适当的“查找”可执行文件。

将此行更改为此

 for /f "tokens=3" %%i in ('java -version 2^>^&1 ^| C:\Windows\System32\find.exe "version"') do set jversion=%%i 

解决了我的问题。

我只是意识到那里的代码试图找出JVM的版本,因为我知道1.8.0_31。 这是我愚蠢的解决办法:

 rem Set JAVA_OPTS to be able to load native libraries and to set heap size rem for /f "tokens=3" %%i in ('java -version 2^>^&1 ^| %windir%\system32\FIND.exe "version"') do echo %%i rem for /f "tokens=1 delims=_" %%i in ("%jversion:~1,-1%") do set jversion=%%i rem if "%jversion%" geq "1.8.0" ( set JAVA_OPTS=%OUR_JAVA_OPTS% -Xms%OUR_JAVA_MEM% -Xmx%OUR_JAVA_MEM% rem ) else ( rem set JAVA_OPTS=-XX:MaxPermSize=128m %OUR_JAVA_OPTS% -Xms%OUR_JAVA_MEM% -Xmx%OUR_JAVA_MEM% rem ) 

我认为Spark团队需要在这方面开展工作

rem设置JAVA_OPTS,以便能够加载本地库,并为/ f“tokens = 3”%%我在('java -version 2 ^> ^&1 ^ |%windir%\ system32 \ FIND.exe“版本中设置堆大小“')do echo %% i for / f”tokens = 1 delims = _“ %% i in(”%jversion:〜1,-1%“)do set jversion = %% i

我的朋友有同样的问题。 我们认为这与java有关。 所以我们重新安装了java-sdk(1.7),并检查路径和JAVA_HOME是否设置正确。 之后spark-shell.cmd和spark-submit.cmd工作正常。

平台:Windows 8。