1. 程式人生 > 其它 >Call From linux01/192.168.x.x to linux01:8020 failed on connection exception: 拒絕連線; For more details

Call From linux01/192.168.x.x to linux01:8020 failed on connection exception: 拒絕連線; For more details

技術標籤:HDFS叢集使用hadoophdfs大資料

測試的時候使用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命令報錯,就排查一下吧

[[email protected] hadoop-2.8.5]# which hadoop
/usr/bin/hadoop

[[email protected] hadoop-2.8.5]# which hdfs
/usr/bin/hdfs

 

[[email protected] 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.移除舊的環境變數

[[email protected] hadoop-2.8.5]# mv /usr/bin/hadoop   /usr/bin/hadoop.old

[[email protected] hadoop-2.8.5]# mv /usr/bin/hdfs /usr/bin/hdfs.old

[[email protected]
hadoop-2.8.5]# which hadoop #可以看到配置的環境變數生效了 /home/software/hadoop/hadoop-2.8.5/bin/hadoop

2.重啟hadoop

3.重新格式化:

[[email protected] 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埠打開了,但是不允許遠端訪問(一般是這個)