Reputation: 623
I'm trying to install Hadoop on Ubuntu 11.10. I set the JAVA_HOME
variable in the file conf/hadoop-env.sh
to:
# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
and then I execute these commands (Standalone Operation):
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
$ cat output/*
but I have the following error when executing the third command:
ERROR : JAVA_HOME is not set
Is the JAVA_HOME
variable not set correctly?
Upvotes: 55
Views: 156983
Reputation: 49
I tried changing /etc/environment
:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
on the slave node, it works.
Upvotes: 1
Reputation: 273
Here we provide simple steps to setup JAVA_HOME while installing of Hadoop
Step1: Goto Java library path /lib jvm
Then set the JAVA_HOME & PATH in .bashrc file
Step 2 : Once it is done then go with Hadoop env file then update it.
After once it is done then stop the daemons and start daemons once again.
Upvotes: 0
Reputation: 31
In some distributives(CentOS/OpenSuSe,...) will work only if you set JAVA_HOME in the /etc/environment.
Upvotes: 0
Reputation: 23
I solved this in my env, without modify hadoop-env.sh
You'd be better using /bin/bash
as default shell not /bin/sh
Check these before:
echo $JAVA_HOME
)echo $SHELL
in every node, check if print /bin/bash
if not, vi /etc/passwd
, add /bin/bash
at tail of your username
ref
Upvotes: -1
Reputation: 2197
The solution that worked for me was setting my JAVA_HOME
in /etc/environment
Though JAVA_HOME
can be set inside the /etc/profile files, the preferred location for JAVA_HOME
or any system variable is /etc/environment
.
Open /etc/environment in any text editor like nano or vim and add the following line:
JAVA_HOME="/usr/lib/jvm/your_java_directory"
Load the variables:
source /etc/environment
Check if the variable loaded correctly:
echo $JAVA_HOME
Upvotes: 2
Reputation: 737
I tried the above solutions but the following worked on me
export JAVA_HOME=/usr/java/default
Upvotes: 1
Reputation: 651
Make sure that you have removed the comment tag and changed your JAVA_HOME
in the hadoop-env.sh
as well as the appropriate .bashrc
and/or .profile
:
# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
should be
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
You can set your JAVA_HOME
and PATH
for all users (make sure you haven't previously set this to the wrong path) in /etc/profile
.
Also, don't forget to activate the new change by logging-out/in or by executing source /etc/profile
.
Upvotes: 65
Reputation: 1339
Copy this export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
to hadoop-env.sh
file.
JAVA_HOME
is the location where java binaries are present.
Upvotes: 1
Reputation: 22296
You can add in your .bashrc
file:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
and it will dynamically change when you update your packages.
Upvotes: 9
Reputation: 20065
Type echo $JAVA_HOME
in your terminal to be sure your JAVA_HOME
is set.
You can also type java -version
to know what version of java you are actually using.
By the way, reading your description it seems your actually writing
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
in the file conf/hadoop-env.sh
, you should write it in your terminal or in ~/.bashrc
or ~/.profile
then type source < path to modified file >
.
Upvotes: 14
Reputation: 3733
You should set JAVA_HOME
in the hadoop-env.sh
file also which is in the Hadoop configuration directory.
By default the JAVA_HOME
setting line is commented.
Upvotes: 37
Reputation: 1
Above error is because of the space in between two words.
Eg: Java located in C:\Program Files\Java --> Space in between Program and files would cause the above problem. If you remove the space, it would not show any error.
Upvotes: -9