我已经在CentOs上以伪分布式模式安装了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选项运行相同的命令会得到相同的结果。有人有这个问题吗?
提前致谢。
答案 0 :(得分:2)
我正在使用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的路径