我已经在CentO上以伪分布式模式安装了CDH4,没有任何问题,但是当我在Ubuntu 12.04上安装它时,在设置JAVA_HOME环境变量时出现一些错误。

我安装了JDK,并使用以下几行在/etc/profile.d~/bash.rc中正确设置了JAVA_HOME:

export JAVA_HOME=/usr/local/java/latest
export PATH=${JAVA_HOME}/bin:$PATH

我知道在两个地方都定义它是多余的,但是显然在/etc/profile.d中设置它是行不通的。从我的用户那里,当我键入$echo $JAVA_HOME时,我得到:
/usr/local/java/latest

从sudo运行$ sudo -E echo $JAVA_HOME,我得到:
/usr/local/java/latest

如果您想知道,我正在为sudo指定-E选项来保存我的环境。

所以我真正的问题是当我尝试使用以下命令启动HDFS时:
for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

我收到以下错误:
* Starting Hadoop datanode:
Error: JAVA_HOME is not set and could not be found.

使用-E选项运行相同的命令可以得到相同的结果。有人遇到过这个问题吗?

提前致谢。

最佳答案

经过研究,我找到了问题的答案。

我正在使用CDH4,并且已经在伪分布式模式下安装了hadoop。

为了解决我的JAVA_HOME问题,我在hadoop-env.sh中创建了/etc/hadoop/conf.pseudo.mr1文件

该文件包含以下行:

export JAVA_HOME=/usr/local/java/latest

其中/ usr / local / java / latest是我安装JAVA_HOME的路径

关于linux - CDH4 JAVA_HOME Ubuntu,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20598044/

10-10 13:33