【问题标题】:Error: JAVA_HOME is not set and could not be found. How to set JAVA_HOME permanently in Hadoop?错误: JAVA_HOME 未设置且无法找到。如何在 Hadoop 中永久设置 JAVA_HOME?
【发布时间】:2013-09-14 07:41:55
【问题描述】:

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

在此之前,我安装了 Java 并将我的 JAVA_HOME 变量导出到 /usr/lib/jvm/java-6-oracle 并将 JAVA_HOME 导出到 path 以及对于 root 和其他用户(self、hdfs)。 echoed 是正确的,并且出现在 env 结果中。

我的 CDH 安装仍然抱怨 JAVA_HOME 未找到/设置,所以我按照 this/etc/sudoers 中的条目 Defaults env_keep+=JAVA_HOME 添加了 JAVA_HOME/etc/environment

一切正常,我可以通过Jps检查服务是否正在运行,但是当我尝试停止它们时以root身份显示,

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,我相信这是一个例子

【问题讨论】:

  • 您是否尝试将JAVA_HOME 明确放入上述路径hadoop-env.sh(在其中搜索JAVA_HOME)?

标签: java linux hadoop installation


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您是否也尝试在 /etc/profile 中设置 JAVA_HOME。你也可以看看这个链接吗Hadoop: «ERROR : JAVA_HOME is not set»

    【讨论】:

      【解决方案3】:

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

      From hadoop documentation

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

      设置为 Java 安装的根目录
      导出 JAVA_HOME=/usr/java/latest

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-08
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多