Hadoop:«错误:JAVA_HOME未设置»

我试图在Ubuntu 11.10上安装Hadoop。 我把文件conf/hadoop-env.shJAVA_HOMEvariables设置为:

 # export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

然后我执行这些命令(独立操作):

 $ mkdir input $ cp conf/*.xml input $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[az.]+' $ cat output/* 

但执行第三个命令时出现以下错误:

错误:未设置JAVA_HOME

JAVA_HOMEvariables设置不正确?

确保你已经删除了注释标记,并改变了hadoop-env.shJAVA_HOME以及相应的.bashrc和/或.profile

 # export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

应该

 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

您可以在/etc/profile为所有用户设置您的JAVA_HOMEPATH (确保您以前没有将其设置为错误的路径)。

此外,不要忘记通过注销/ in或通过执行source /etc/profile激活新的更改。

您还应该在Hadoop配置目录中的hadoop-env.sh文件中设置JAVA_HOME 。 默认情况下, JAVA_HOME设置行是注释。

在终端中输入echo $JAVA_HOME以确定您的JAVA_HOME已设置。

您也可以键入java -version来知道您实际使用的Java版本。

顺便说一下,阅读你的描述,似乎你的写作

 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

conf/hadoop-env.sh文件中,你应该把它写在你的终端或~/.bashrc~/.profile然后输入source < path to modified file >

你可以添加你的.bashrc文件:

 export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 

当你更新软件包时它会动态地改变。

将这个export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk复制到hadoop-env.sh文件。

JAVA_HOME是java二进制文件存在的位置。

我尝试了上述解决方案,但以下工作在我身上

 export JAVA_HOME=/usr/java/default 
  • hadoop错误:未设置JAVA_HOME

以上错误是因为两个词之间的空间。

例如:位于C:\ Program Files \ Java中的Java – > 程序文件之间的空间会导致上述问题。 如果删除空间,它不会显示任何错误。