我试图在Ubuntu 11.10上安装Hadoop。 我把文件conf/hadoop-env.sh
的JAVA_HOME
variables设置为:
# 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_HOME
variables设置不正确?
确保你已经删除了注释标记,并改变了hadoop-env.sh
的JAVA_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_HOME
和PATH
(确保您以前没有将其设置为错误的路径)。
此外,不要忘记通过注销/ 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
以上错误是因为两个词之间的空间。
例如:位于C:\ Program Files \ Java中的Java – > 程序和文件之间的空间会导致上述问题。 如果删除空间,它不会显示任何错误。