我正在尝试让Hadoop在我的Windows机器上运行“本地模式”。我一直用它来指导我:http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html
当我运行命令:bin / hadoop时,我收到以下错误消息: “错误:JAVA_HOME设置不正确。 请更新C:... \ hadoop-2.7.1 \ conf \ hadoop-env.cmd“
在'hadoop-env.cmd'里面,我有一句话: 设置JAVA_HOME =%JAVA_HOME%
请注意,当我在命令行输入echo%JAVA_HOME%时,我得到: C:\爪哇\ jdk1.0.8_51
即使我将'hadoop-env.cmd'中的行更改为: 设置JAVA_HOME = C:\ Java \ jdk1.0.8_51 我得到同样的错误......
我的JAVA_HOME设置错误怎么可能?
答案 0 :(得分:13)
如果您的JAVA_HOME路径包含空格,则必须使用Windows 8.3 Pathname
答案 1 :(得分:9)
像其他答案一样,您的Java环境路径不能包含空格。 解决方法如下:
答案 2 :(得分:2)
使用 conf \ hadoop-env.cmd中的“%JAVA_HOME%”
答案 3 :(得分:2)
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131\
以上配置抛出与您相同的错误。我在hadoop-env.cmd中通过以下内容进行了更新,实际上是SFN
set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_131\
这使我能够更改/具有与系统不同的Java版本。
答案 4 :(得分:1)
尝试从hadoop-env.cmd中的@rem中删除@并设置JAVA_HOME =%JAVA_HOME%
rem The java implementation to use. Required.
设置JAVA_HOME =%JAVA_HOME%
然后尝试运行hdfs namenode -format
此解决方案对我有用
答案 5 :(得分:0)
如果你的java环境路径包含空格,例如" C:\ Program Files \ java \ xxxxx" ,“程序文件”一词包含一个空格,因此CMD无法识别
这是正确的答案
答案 6 :(得分:-2)
在hadoop-config.xml中,逻辑是
如果不存在%JAVA_HOME%\ bin \ java.exe( echo错误:JAVA_HOME设置不正确。 echo请更新%HADOOP_HOME%\ conf \ hadoop-env.cmd 转到:eof )
如果您的java环境路径包含 space ,例如" C:\ Program Files \ java \ xxxxx" ,“Program Files”一词包含 space ,因此CMD无法识别
所以你可以改变路径。