1

我在 Ubuntu 12.04 上以伪分布式模式安装了 CDH 。

在此之前,我为 root 和其他用户(self、hdfs)安装了 Java 并将我的JAVA_HOME变量/usr/lib/jvm/java-6-oracle导出并导出JAVA_HOME到。path它被echo正确编辑并显示在env结果中。

我的 CDH 安装仍然抱怨JAVA_HOME找不到/设置,所以我按照这个JAVA_HOME添加了,并在/etc/environmentDefaults env_keep+=JAVA_HOME/etc/sudoers

一切正常,我可以通过 检查服务是否正在运行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我相信的一个例子

4

3 回答 3

3

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

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

export JAVA_HOME=/correct/path/to/java-home
于 2014-09-12T15:38:20.190 回答
0

您是否也尝试在 /etc/profile 中设置 JAVA_HOME。您能否也检查一下这个链接Hadoop:«错误:未设置 JAVA_HOME»

于 2013-09-14T08:20:47.730 回答
0

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

来自 hadoop 文档

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

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

于 2016-06-17T11:01:04.003 回答