在解決這個問題的過程中,我又是積累了不少經驗。。。
首先讓我搞了很久的問題是,書上說進程全部啟動的命令是/bin/start-all.sh,但是當我執行的時候顯示command not found。后來才知道這個命令到了sbin文件中,應該是版本的原因。我裝的是hadoop2.9。
所以正確的啟動命令是:sbin/start-all.sh
但是當我執行完這個命令之后發現唯獨DataNode未啟動。
原因就是NameNode的clusterID和DataNode的不一致,所以未能啟動。之所以會這樣,是因為我們執行了多次hdfs namenode -format命令,導致NameNode的clusterID改變而DataNode卻沒變。
解決步驟:
1 停止所有進程:sbin/stop-all.sh
2 將namenode的clusterID復制到datanode的clusterID
3啟動所有進程 /sbin/start-all.sh
4 檢驗
( [注] 有時clusterID相同但是數據節點依舊無法啟動,此時可以查看一下data和name文件夾的權限,有時候會因為權限問題而無法啟動)
在web頁面也可以看到數據了。