Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

(HBase) Error: JAVA_HOME is not set and Java could not be found

I have read some comments about setting JAVA_HOME. As I am a beginner in this,I did not edit anything without any knowledge of what I was doing. I did not want to mess things up more than this. So if you can guide me through this and tell me what is wrong with my coding, I would really appreciate it.

I have been trying to install Hadoop and then HBase. After a lot of difficulties and error solving, I could finally install Hadoop, and get the this output when I ran start-all.sh and everything seemed to be fine.

> hduser@CSLAP106:~$ /usr/local/hadoop/bin/start-all.sh

> hduser@CSLAP106:~$ jps

> 3005 NameNode

> 3404 JobTracker

> 5570 Jps

> 3554 TaskTracker

> 3311 SecondaryNameNode

I also have this Java Version and when I type echo JAVA_HOME, I get this output:

> hduser@CSLAP106:~$ java -version 
> 
> java version "1.7.0_25" OpenJDK Runtime Environment (IcedTea 2.3.12)
> (7u25-2.3.12-4ubuntu3)   OpenJDK Server VM (build 23.7-b01, mixed
> mode) 
> hduser@CSLAP106:~$ echo JAVA_HOME JAVA_HOME

After this, I tried to install HBase (which I think I am about to give up on), and constantly I get the error that JAVA_HOME is not set and java cannot be found

This is what I tried to start Hbase:

hduser@CSLAP106:~$ /usr/local/hbase/hbase-0.94.6.1/bin/start-hbase.sh
+======================================================================+
|      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.                             |
+======================================================================+

I also check in this directory /usr/local/hbase/hbase-0.94.6.1/bin to see if it recognizes Java or not, and it does!

After searching through Strackoverflow and other people's answers to the same problem, I tried to apply them to my .xml and .sh files, but again nothing happened.

For HADOOP

this is the hadoop-env.sh in which I set the JAVA_HOME:

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

This is the editing for my $HOME/.bashrc :

# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386

# Add Hadoop bin/ directory to PATH

export PATH=$PATH:$HADOOP_HOME/bin

For HBase

These are the edits I have made in hbase-site.xml

<property>
        <name>hbase.rootdir</name>
    <value>hdfs://localhost:54310 /hbase</value>
</property>

This is for the hbase-env.sh

# The java implementation to use.  Java 1.6 required.
# export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386

This is all I guess.

like image 398
Nazanin Avatar asked Jan 14 '14 15:01

Nazanin


5 Answers

Apparently the HBase could not find JAVA_HOME and java binary although you can run java -version locally.

You should run export JAVA_HOME=/the/path/of/you/jdk/ before running HBase.

BTY, echo JAVA_HOME JAVA_HOME is incorrect. You may want echo $JAVA_HOME.

like image 70
tobe Avatar answered Sep 30 '22 05:09

tobe


Hbase tries to read JAVA_HOME directory set on hbase-env.sh file.

In hbase-env.sh file

export JAVA_HOME=/usr/java/jdk1.6.0/ is set and commented.

Default JAVA_HOME set for hbase.

If you set java home in different directory please edit the line and comment out it.

It will solve your problem.

like image 31
Rakib Avatar answered Sep 30 '22 07:09

Rakib


Please refer to below:

"Java needs to be installed and available. If you get an error indicating that Java is not installed, but it is on your system, perhaps in a non-standard location, edit the conf/hbase-env.sh file and modify the JAVA_HOME setting to point to the directory that contains bin/java your system."

The link is http://hbase.apache.org/book/quickstart.html

like image 20
user3093893 Avatar answered Sep 30 '22 06:09

user3093893


If you have already set JAVA_HOME path in ~/.bashrc file and still Hbase is giving the same error of "JAVA_HOME not found", set JAVA_HOME in /etc/environment file.

I face this issue and it worked for me when i set JAVA_HOME in '/etc/environment'

like image 26
Amit Baderia Avatar answered Sep 30 '22 07:09

Amit Baderia


Just modify hbase-env.sh like this:

export JAVA_HOME=/your/java/path

I don't know why /etc/profile java path doesn't work, but this way would help you.

like image 43
s_jaewoo Avatar answered Sep 30 '22 05:09

s_jaewoo