启动hbase时找不到JAVA_HOME。有什么建议?

时间:2012-02-14 16:35:56

标签: java linux hadoop amazon-ec2 hbase

我只是在玩hbase(在EC2上)并且在启动时遇到问题。这是我得到的:

[root@domU-12-31-39-13-D6-62 ~]# sudo /etc/init.d/hadoop-hbase-master start
+======================================================================+
|      Error: JAVA_HOME is not set and Java could not be found         |
+----------------------------------------------------------------------+
| Please download the latest Sun JDK from the Sun Java web site        |
|       > http://java.sun.com/javase/downloads/ <                      |
|                                                                      |
| HBase requires Java 1.6 or later.                                    |
| NOTE: This script will find Sun Java whether you install using the   |
|       binary or the RPM based installer.                             |
+======================================================================+

我查找了错误并安装了openjdk 1.6并在我的.bash_profile和/ etc / profile中设置了java_home变量(以防hbase以不同的用户身份运行)。它似乎已经生效:

[root@domU-12-31-39-13-D6-62 ~]# java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.42.1.10.4.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
[root@domU-12-31-39-13-D6-62 ~]# echo $JAVA_HOME
/usr/bin/java

但是在启动hbase时我仍然遇到此错误。我不是那种带有java的家伙,所以我不确定我做错了什么。如果它有帮助,我在ec2上使用centos6,在hbase / hadoop包中使用cloudera的存储库。

5 个答案:

答案 0 :(得分:7)

JAVA_HOME不应指向java可执行文件',而应指向可以找到其余java文件的位置。

我认为这是/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/。一世  认为您可以使用update-alternatives --display java来显示所有已安装的javas。

答案 1 :(得分:2)

检查你的脚本/etc/init.d/hadoop-hbase-master,看看它在哪里找到java,你也可以在调试模式下运行它。

sh -x /etc/init.d/hadoop-hbase-master start

答案 2 :(得分:1)

如果您已经在bashrc中设置了JAVA_HOME但仍然无法正常工作,请尝试在/ etc / environment文件中进行设置。

答案 3 :(得分:0)

如果要快速检查,可以在/etc/init.d/hadoop-hbase-master脚本中对JAVA路径进行硬编码。

答案 4 :(得分:0)

可能$ JAVA_HOME指向JRE主页。检查以确认bin中是否存在javac