初学hadoop,配置ha模式,没有用到zookeeper,一共五台虚拟机,对应的节点分别是:
10.1.2.42 主namendoe
10.1.2.43 备namenode
10.1.2.45 datanode
10.1.2.49 datanode
10.1.2.50 datanode
今天测试使用hadoop的ha模式,启动时standby节点之前,需要同步主节点(active)的元数据,用到了bin/hdfs namenode -bootstrapStandby命令,但是一直联不通主节点,报错:Unable to fetch namespace information from active NN at hadoop042/10.1.2.42:8020: Call From hadoop043/10.1.2.43 to hadoop042:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
根据报错,我去查看主节点的防火墙和端口使用情况:
1、防火墙已经关闭
2、端口使用情况
发现8020端口对应的是:127.0.0.1:8020 而standby节点请求的是Unable to fetch namespace information from active NN at hadoop042/10.1.2.42:8020 因此我查看了我的主节点的hosts文件,文件中有一行是:127.0.0.1 hadoop042 这样hosts文件就有问题。我把hosts文件中127.0.0.1 hadoop042这一行删掉,留下10.1.2.42 hadoop042这一行,然后再在standby节点执行刚才的命令,显示正常、