格式化Namenode提示Call From n1/192.168.253.130 to s1:8485 failed on connection exception: java.net.Connec錯誤,看了看http://wiki.apache.org/hadoop/ConnectionRefused給的提示,html
百度各類方法,得不到解決,後來本身試出方法。再回頭看百度出來的方案,由於本身是新手,缺乏瞭解,加上解釋不清楚。今天特地記錄一下:java
- 首先,看錯誤截圖
明顯是8485端口不通,netstat -apan | grep 8485(或者netstat -na |find 8485) 查看8485端口是否被其餘進程佔用,發現沒有被佔用。node
2.參考(https://blog.csdn.net/qq_26840065/article/details/50999440),kill java殺死全部java進程,從新格式化,仍是報錯。網上說先啓動journalnode集羣,查看我也確實啓動了呀。apache
telnet 192.168.0.11 8485結果,未找到telnet命令,那就安裝吧,首先機器聯網,從新修改ssh
/etc/sysconfig/network-scripts/ifcfg-ens33,將「static」修改爲「dhcp」(即IP地址有靜態,改爲自動獲取),重啓網卡,service network restart(從新ssh jack1,此時發現,root@jack1,變成了root@loaclhost,網址也換成了外網網址,ssh jack2,jack3,jack4也都通,是否是意味着jack1內外網都通了,先無論這些)。socket
安裝oop
yum install telnet-server -y測試
yum install xinetd -y.net
yum install telnet3d
啓動systemctl start telnet.socket
加入開機啓動
systemctl enable telnet.socket
而後測試端口
telnet jack1 8485結果仍是不通
tenet jack1 22結果通
這個時候基本能夠判斷8485端口問題,
參考(https://www.cnblogs.com/tibit/p/7447190.html),說先要啓動journalnode集羣,在jack2 ,jack3,jack4上,JPS查看,journalnode都在運行呀,沒有問題。這3臺虛擬機正是我配置的journalnode節點呀,並且zkServer.sh status,查看正常,ZKFC格式化,啓動也正常,datanode啓動也正常,正是奇怪了。
在jack2上sbin下,格式化namenode試試(參考https://blog.csdn.net/Jay7925417/article/details/80470669,流程清晰,可是3.3下面的1,格式化命令hadoop namenode -format是錯的,應該是 ./hdfs namenode -format,由於沒有環境變量,因此要加./) ,結果報錯
哎,仍是不行,由於jack1,jack2兩臺機子我配了namenode,都試了一下,具網上說,屢次格式化容易出問題,真的好擔憂,因此想到了先對4臺機器拍照,備份,以便於回滾,這樣本身就能夠放心幹了。接下來的思路,我得手動打開8485,怎麼打開呢?又是百度一通,沒有找到辦法,由於本身基礎差,可是內心想確定是有辦法的。
偶然間,想到在jack1上 telnet jack2 8485,居然是是通,好興奮,接着jack3 8485,jack4 8485居然都是通,jack1爲啥不通呢?聯想到配置,和看的以前百度到的網頁,差異就在於jack1,journalnode沒有啓動,而我也沒有打算在jack1上配置journalnode呀,正常呀。再去核實一下hdfs-site.xml配置,發現配置的是jack1,jack2 jack3呀,爲啥jack4也啓動了journalnode呢?而jack1沒有啓動呢?
忽然想到了slaves文件,裏面只配置了jack2,jack3,jack4沒有配置jack1,以前看了教程,說這裏配置的是datanode,也符合個人最初的設想呀。難不成這裏配置是journalnode?先試試再說,都加上jack1.要想打開8485,就要啓動journalnode.而後在jack1上,telnet jack1 8485通了!!!,cd /root/hadoop-2.7.7/bin ./hdfs namenode -format 格式化成功了。