Hadoop2.6 安装问题总结

在debian7虚拟机上安装hadoop2.6,期间遇到一些问题在此记录一下。

安装参考:

Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04


1、安装后出现

...

master: Error: JAVA_HOME is not set and could not be found.

...

需要看下对应日志的详细错误信息,在安装hadoop目录下(我的设置 HADOOP_PREFIX=/usr/local/hadoop) $HADOOP_PREFIX/logs/hadoop-hadoop-node-debian.log,根据信息可知道hadoop在运行环境中找不到 JAVA_HOME 变量,找不到jdk的位置

输入 env 发现我们已经设置了,但是hadoop发现不了,解决方法修改hadoop的环境设置文件,使用jdk的绝对路径:

在 $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh 中,可以发现

export JAVA_HOME=${JAVA_HOME}

将${JAVA_HOME} 改成jdk绝对路径(我的jdk路径为 /usr/lib/jvm/jdk1.8.0_111),即

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111

修改后重启hadoop,问题解决


2、启动 start-dfs.sh 失败

启动dfs时(sh ./sbin/start-dfs.sh)出现报错

...

Syntax error: word unexpected (expecting “)”)”

...

根据其信息找到对应的脚步文件发现并没有问题,最后发现是bash的问题,sh 等同于 bash --posix,直接启动或使用bash启动就正常了:

./sbin/start-dfs.sh

bash ./sbin/start-dfs.sh

参考:https://blog.csdn.net/qq_16018407/article/details/78899796


3、启动start-dfs.sh后,使用jps发现 namesecondary进程不在,其对应报错:

...

... FATAL org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Failed to start secondary namenode  

java.net.BindException: Port in use: 0.0.0.0:50090  

...

发现端口已存在被占用,应该是前面启动失败时导致的问题解决方法就是找到对应的进程id然后kill掉:

sudo lsof -i:50090 -P  //找到对应的进程id

sudo kill -9 PID  //kill掉对应的进程

再重启 start-dfs.sh即可(先执行stop-dfs.sh),问题解决

参考:

Hadoop 安装配置错误总结


更新至 2018-6-5

猜你喜欢

转载自www.cnblogs.com/GO-NO-1/p/9139595.html