[root@hserver1 sbin]# ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [hserver1]
hserver1: starting namenode, logging to /opt/hadoop/hadoop-2.8.0/logs/hadoop-root-namenode-hserver1.out
hserver3: Error: JAVA_HOME is not set and could not be found.
hserver2: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.8.0/logs/hadoop-root-secondarynamenode-hserver1.out
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.8.0/logs/yarn-root-resourcemanager-hserver1.out
hserver3: Error: JAVA_HOME is not set and could not be found.
hserver2: Error: JAVA_HOME is not set and could not be found.
[root@hserver1 sbin]# ./stop-all.sh
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [hserver1]
hserver1: no namenode to stop
hserver3: Error: JAVA_HOME is not set and could not be found.
hserver2: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
解决办法:
一个主节点,两个数据节点的JDK安装必须一致。
针对这个错误,网上好多都说了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,则没有报错。
以上三个环境必须安装JDK和hadoop环境,必须修改hdoop-env.sh