错误:未设置JAVA_HOME且无法找到。如何在Hadoop中永久设置JAVA_HOME?

时间:2013-09-14 07:41:56

标签: java linux hadoop installation

我在Ubuntu 12.04上安装了CDH in Pseudo distributed mode

在此之前,我安装了Java并将JAVA_HOME变量导出到/usr/lib/jvm/java-6-oracle,并将JAVA_HOME导出到path,对于root用户和其他用户都是如此(自我,hdfs)。并且echo正确显示,并显示在env结果中。

我的CDH安装仍然抱怨JAVA_HOME未找到/已设置,因此我根据thisJAVA_HOME添加了/etc/environment,并在{{Defaults env_keep+=JAVA_HOME中添加了/etc/sudoers 1}}

一切正常,我可以检查服务是通过Jps运行,但当我试图阻止它们时,它会说,

service hadoop-hdfs-datanode stop
 * Stopping Hadoop datanode: 
Error: JAVA_HOME is not set and could not be found.

同样适用于所有其他服务。

我的安装中没有hadoop-env.sh,唯一存在的是/usr/lib/hadoop-0.20-mapreduce/example-confs/conf.secure/hadoop-env.sh这是我相信的一个例子

3 个答案:

答案 0 :(得分:3)

Cloudera使用BIGTOP为您尝试检测JAVA_HOME。如果你问我,这种做法充其量是值得怀疑的。

您可以通过编辑bigtop配置文件使其正常运行。在Debian / Ubuntu上,将其添加到/etc/default/bigtop-utils

export JAVA_HOME=/correct/path/to/java-home

答案 1 :(得分:0)

您是否尝试在/ etc / profile中设置JAVA_HOME?您也可以查看此链接Hadoop: «ERROR : JAVA_HOME is not set»

答案 2 :(得分:0)

您应修改 etc/hadoop/hadoop-env.sh 并添加export JAVA_HOME=/usr/java/latest这样您的JAVA_HOME将永久设置

From hadoop documentation

解压缩下载的Hadoop发行版。在分发中,编辑文件etc/hadoop/hadoop-env.sh以定义一些参数,如下所示:

set to the root of your Java installation
export JAVA_HOME=/usr/java/latest