执行hdfs命令: hd fs dfs -ls /

报错:
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

ls: Call From linux01/192.168.133.3 to linux01:8020 failed on connection exception: 拒绝连接; For more details see

:

排查:

[root@linux01 hadoop-2.8.5]# which hadoop

/usr/bin/hadoop

[root@linux01 hadoop-2.8.5]# which hdfs

/usr/bin/hdfs

[root@linux01 hadoop-2.8.5]# vi /etc/profile

#hadoop

export HADOOP_HOME=/home/software/hadoop/hadoop-2.8.5

export PATH=$PATH:$HADOOP_HOME/bin

#可以看到配置的hadoop环境没生效,原因是:之前在/usr/bin下配置了启动脚本,服务器优先回去读取/usr/bin下的启动程序

解决方法:

1.移除旧的环境变量

[root@linux01 hadoop-2.8.5]# mv /usr/bin/hadoop   /usr/bin/hadoop.old

[root@linux01 hadoop-2.8.5]# mv /usr/bin/hdfs /usr/bin/hdfs.old

[root@linux01 hadoop-2.8.5]# which hadoop     #可以看到配置的环境变量生效了

/home/software/hadoop/hadoop-2.8.5/bin/hadoop

2.重启hadoop

3.重新格式化:

[root@linux01 hadoop-2.8.5]# hadoop namenode -format

Re-format filesystem in Storage Directory /home/software/hadoop/hadoop-2.8.5/data/name ? (Y or N)

其他报错排查:

  • 防火墙没有关闭
  • 主节点9000端口没有打开
  • 主节点9000端口打开了,但是不允许远程访问(一般是这个)

报错解决(简易步骤)

关闭hadoop集群

s top-all.sh

检查防火墙是否已关闭

service iptables status

关闭防火墙

service iptables stop

chkconfig iptables off

查看core-site.xml配置。其中fs.defaultFS配置的值应为主机名或者ip,不能配置为localhost或者127.0.0.1。如主机名为common,则可配置为:

<property>

<name>fs.defaultFS</name>

<value>hdfs://linux01:9000</value>

</property>

如果fs.defaultFS配置正确,则检查9000端口情况。

netstat -tlpn

如果9000端口前的ip地址是127.0.0.1,则表明只能本地访问。

检查host配置

cat /etc/hosts

如果存在如下两行则说明配置错误。

需要将这两行去掉,并配置ip地址与主机名