場景: 預發環境中,同事已經搭建了一套hadoop集群,由於版本與所需不符,所以需要替換版本
問題描述: 在配置文件都准確的情況下,啟動hadoop,出現以下報錯:
啟動之前初始化: 初始化目錄跟配置文件目錄不一致
hdfs namenode -format
[root@hdoop2 hadoop-2.8.5]# hadoop dfs -ls /
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.ls: Call From hdoop2/192.168.18.87 to hdoop2:8020 failed on connection exception: java.net.ConnectException: 拒絕連接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
[root@hdoop2 hadoop-2.8.5]# jps #namenode沒啟動
88467 SecondaryNameNode
88821 NodeManager
88692 ResourceManager
88254 DataNode
195389 AlertPublisher
排查:
[root@hdoop2 hadoop-2.8.5]# which hadoop
/usr/bin/hadoop[root@hdoop2 hadoop-2.8.5]# which hdfs
/usr/bin/hdfs
[root@hdoop2 hadoop-2.8.5]# vim /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@hdoop2 hadoop-2.8.5]# mv /usr/bin/hadoop /usr/bin/hadoop.old
[root@hdoop2 hadoop-2.8.5]# mv /usr/bin/hdfs /usr/bin/hdfs.old
[root@hdoop2 hadoop-2.8.5]# which hadoop #可以看到配置的環境變量生效了
/home/software/hadoop/hadoop-2.8.5/bin/hadoop2.重啟hadoop
3.重新格式化:
[root@hdoop2 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)
結果: 問題解決
總結:如果遇到了百思不得其解的問題,而且確認自己的配置沒問題,那么:檢查一下環境配置是否有問題 ---------MD。搞了TM倆天終於找到原因了,記錄一下

