Ubuntu16.04安装hadoop2.7.2分布式集群遇到的各种问题总结

Ubuntu16.04安装hadoop2.7.2分布式集群遇到的各种问题总结

① 执行hadoop namenode -format以后,发现namenode运行在admin_server127.0.1.1
这里写图片描述
原因: 最开始修改/etc/hosts文件时,直接将127.0.1.1后面的localhost修改为了admin_server
解决办法: 删除127.0.1.1的那条配置,直接在127.0.0.1下面添加以下内容(所有主机的/etc/hosts文件均一样):

192.168.202.34 adminserver
192.168.202.33 monserver
192.168.202.31 osdserver1
192.168.202.32 osdserver2
192.168.202.35 osdserver3

执行hadoop namenode -format重新格式化:
这里写图片描述
② 执行start-dfs.sh以后,报错Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-addres
这里写图片描述
错误原因一:查找资料以后,以为是没有设置HADOOP_CONF_DIR 这个环境变量。参考链接:Hadoop启动dfs时报错Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namen
解决方法:添加环境变量:

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

后来发现再次执行start-dfs.sh仍然报同样的错误!!于是继续查找自资料,在中可能的四种原因给出了四个原因,发现都不是自己的错误原因。后来发现是因为自己最开始规划集群集群时,所有hostname有带有下划线!!

真正的错误原因:hostname中不能带有下划线,否则识别会出问题!
解决办法: 修改/etc/hosts/etc/hostname,将hostname中的下划线都去掉。

执行start-dfs.sh后,正常初始化相关节点:
这里写图片描述

参考的链接:关于这个错误切中要害的参考资料!
③ 在slave节点上执行jps以后,发现slave节点上没有DataNode、NodeManager进程
查看slave节点上的/hadoop-2.7.2/logs/hadoop-cephlee-datanode-monserver.log 日志:

$ cat hadoop-cephlee-datanode-monserver.log

发现错误信息如下:

java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: 地址已在使用; For more details see:  http://wiki.apache.org/hadoop/BindException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:792)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:721)
    at org.apache.hadoop.ipc.Server.bind(Server.java:425)
    at org.apache.hadoop.ipc.Server.bind(Server.java:397)
    at org.apache.hadoop.hdfs.net.TcpPeerServer.<init>(TcpPeerServer.java:111)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initDataXceiver(DataNode.java:893)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1107)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:428)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2370)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2257)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2304)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2481)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2505)
Caused by: java.net.BindException: 地址已在使用
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.hadoop.ipc.Server.bind(Server.java:408)
    ... 10 more
2018-07-19 21:19:43,701 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2018-07-19 21:19:43,705 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at monserver/192.168.202.33
************************************************************/

使用命令查看被占用的端口情况:

$ sudo netstat -antup

错误原因:发现被docker-proxy占用,以前配置docker上的hadoop集群冲突
解决办法:删除Hadoop集群应用,使用以下命令,先停止hadoop集群,再开启hadoop集群:

# 停止hadoop集群
$ stop-all.sh
或者
$ stop-dfs.sh 
$ stop-yarn.sh
# 重新启动hadoop集群
$ start-all.sh
$ start-dfs.sh 
$ start-yarn.sh

再次执行jps命令,slave节点上出现DataNode、NodeManager进程:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u014454538/article/details/81127468