我的环境是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 -version,它似乎可以在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)发布于 2015-04-30 23:04:25
我已经解决了这个问题。这是我的解决方案。
我安装了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没有使用正确的"find“可执行文件。
将此行更改为
for /f "tokens=3" %%i in ('java -version 2^>^&1 ^| C:\Windows\System32\find.exe "version"') do set jversion=%%i解决了我的问题。
发布于 2015-02-27 06:36:29
我只是意识到那里的代码试图找出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设置为能够加载本机库并为('java -version 2^>^&1 ^| %windir%\system32\FIND.exe“版本”‘)中的JAVA_OPTS "tokens=3“%%i设置堆大小。在("%jversion:~1,-1%")中为/f "tokens=1 delims=_”版本%%i设置回应%%i(“%jversion:~1,-1%”)不设置jversion=%%i
发布于 2015-02-28 03:30:44
我的朋友也有同样的问题。我们认为这与java有关。因此,我们重新安装了java-sdk (1.7),并检查了path和JAVA_HOME是否设置正确。在那之后,spark-shell.cmd和spark-submit.cmd工作得很好。
平台: Windows 8。
https://stackoverflow.com/questions/28747795
复制相似问题