我只是在玩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的存储库。
答案 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,你也可以在调试模式下运行它。
答案 2 :(得分:1)
如果您已经在bashrc中设置了JAVA_HOME但仍然无法正常工作,请尝试在/ etc / environment文件中进行设置。
答案 3 :(得分:0)
如果要快速检查,可以在/etc/init.d/hadoop-hbase-master脚本中对JAVA路径进行硬编码。
答案 4 :(得分:0)
可能$ JAVA_HOME指向JRE主页。检查以确认bin中是否存在javac