Windows上的Hadoop - “错误地设置了JAVA_HOME错误。”

时间:2015-07-24 23:00:12

标签: windows hadoop java-home

我正在尝试让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设置错误怎么可能?

7 个答案:

答案 0 :(得分:13)

如果您的JAVA_HOME路径包含空格,则必须使用Windows 8.3 Pathname

答案 1 :(得分:9)

像其他答案一样,您的Java环境路径不能包含空格。 解决方法如下:

  1. 在cmd行中,收费包含jdk的目录(在我的情况下为C:\ Program Files \ Java \ jdk1.8.0_73)。
  2. 执行以下行“为(。)中的%I做回显%〜sI”以显示已安装的jdk的简称(在我的情况下为C:\ PROGRA〜1 \ Java \ JDK18〜1.0_7)
  3. 在文件“ hadoop-env.cmd”中,将“ JAVA_HOME =%JAVA_HOME%”行更改为“ JAVA_HOME = C:\ PROGRA〜1 \ Java \ JDK18〜1.0_7”。
  4. 再次运行文件“ hadoop-env.cmd”,它将正常运行。

答案 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无法识别

所以你可以改变路径。