admin 管理员组

文章数量: 1184232

测试的时候使用HDFS展示文件的时候报错,正好排查了一下
在执行hdfs命令: hdfs 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.x.x to linux01:8020 failed on connection exception: 拒绝连接; For more details see
: http://wiki.apache.org/hadoop/ConnectionRefused

发现执行HDFS命令报错,就排查一下吧

[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环境没生效,原因是:之前在/usr/bin下配置了启动脚本,服务器优先回去读取/usr/bin下的启动程序
#hadoop
export HADOOP_HOME=/home/software/hadoop/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/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)

问题解决了,可能是不小心格式化两次导致节点ID不对

也可能是下面这种原因

1.关闭hadoop集群

stop-all.sh

2.检查防火墙是否已关闭

service iptables status

3.关闭防火墙

service iptables stop
chkconfig iptables off

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

<property><name>fs.defaultFS</name><value>hdfs://linux01:9000</value></property>

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

netstat -tlpn

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

6.检查host配置

cat /etc/hosts

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

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

如果遇到HDFS执行命令报错也可以从以下几点入手,只是一个思路,高手可以补充

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

本文标签: 系统 编程 关闭