(HBase) Error: JAVA_HOME is not set and Java could not be found
Solution 1
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
.
Solution 2
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.
Solution 3
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
Solution 4
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'
Solution 5
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.
Nazanin
Updated on July 10, 2022Comments
-
Nazanin almost 2 years
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.