搭建HDFS出现的错误
- 无法识别主机名
在和别的节点通信时无法连接,可能是主机名未配置,应该在/etc/hosts文件中配置主机名和ip地址的映射关系 - Zookeeper集群无法启动:
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
在启动Zookeeper集群时出现拒绝连接,有可能是上次Zookeeper集群未正常关闭,导致端口号被占用,我们可以通过修改端口号重新启动,或者可能是未关闭服务器的防火墙,我们需要检查一下防火墙状态,然后将防火墙关闭。
检查防火墙状态
——命令:service iptables status
临时关闭防火墙,重启自动开启
——命令:service iptables stop
永久关闭防火墙,重启生效
——命令:chkconfig iptables off
- namenode启动时报错日志内容如下:
java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority.
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:426)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:416)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getRpcServerAddress(NameNode.java:467)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:567)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:587)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1446)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1512)
经过在网上查询,发现错误的情况并不一样,同一个错误可能有很多种不同的原因,就比如我这次就是namenode格式化多次,会创建多次目录,覆盖了之前的,导致/dfs/name/current/VERSION下的VERSION不一致,也会导致Datanode无法启动。我们可以删除生成的目录重新格式化,或者将version发送给其他节点同步。
未完待续…