我的环境是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)
答案 0 :(得分:3)
我已经解决了这个问题。这是我的解决方案。
我安装了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
解决了我的问题。
答案 1 :(得分:0)
我只是意识到那里的代码试图找出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以便能够加载本机库并设置堆大小 for / f" tokens = 3" %% i in(' java -version 2 ^> ^& 1 ^ |%windir%\ system32 \ FIND.exe"版本"')做回显%% i for / f" tokens = 1 delims = _" %% i in("%jversion:~1,-1%")设置jversion = %% i
答案 2 :(得分:0)
我的朋友有同样的问题。我们认为它与java有关。所以我们重新安装了java-sdk(1.7)并检查了路径和JAVA_HOME是否正确设置。之后,spark-shell.cmd和spark-submit.cmd工作正常。
平台:Windows 8。