如果stop-dfs.sh也报了这个错,把$HADOOP_HOME/libexec/hadoop-config.sh中的如下内容之前加上 export JAVA_HOME=/home/lqr/Tools/jdk1.8.0_151
# Attempt to set JAVA_HOME if it is not set
if [[ -z $JAVA_HOME ]]; then
# On OSX use java_home (or /Library for older versions)
if [ “Darwin” == “$(uname -s)” ]; then
if [ -x /usr/libexec/java_home ]; then
export JAVA_HOME=($(/usr/libexec/java_home))
else
export JAVA_HOME=(/Library/Java/Home)
fi
fi# Bail if we did not detect it
if [[ -z $JAVA_HOME ]]; then
echo “Error: JAVA_HOME is not set and could not be found.” 1>&2
exit 1
fi
fi
——————————————————————————————
【备注】其实yarn-env.sh里面也需要类似的改动
yarn-env.sh里面把
if [ “$JAVA_HOME“ != “” ]; then
#echo “run java in $JAVA_HOME”
JAVA_HOME=$JAVA_HOME
fi
改为
if [ “$JAVA_HOME“ != “” ]; then
#echo “run java in $JAVA_HOME”
JAVA_HOME=/home/lqr/Tools/jdk1.8.0_151
fi
——————————————————————————————
原文:http://blog.csdn.net/dianzishijian/article/details/52094569
很多人按照网上的各类教程搭建hadoop,但经常在安装好了后,启动hadoop时出现各类的错误,本文就“Error:JAVA_HOME is not set and could not be found ”这一错误提出解决办法。
针对这个错误,网上好多都说了java的路径设置有问题,但没有指出具体的修改方法,其实是hadoop里面hadoop-env.sh文件里面的java路径设置不对,hadoop-env.sh在hadoop/etc/hadoop目录下,具体的修改办法如下:
sudo vim hadoop/etc/hadoop/hdoop-env.sh
将语句 export JAVA_HOME=$JAVA_HOME
修改为 export JAVA_HOME=/usr/java/jdk1.8.0_101
保存后退出。
再次输入start-dfs.sh启动hadoop,则没有报错。