出現該問題的原因:在第一次格式化dfs后,啟動並使用了hadoop,后來又重新執行了格式化命令(hdfs namenode -format),這時namenode的clusterID會重新生成,而datanode的clusterID 保持不變。
1:其實網上已經有解決辦法了,這里自己腦補一下,也可以讓別人看到我是怎么解決的。出現這個問題主要是和配置這個文件相關:core-site.xml;
<!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <!-- 指定hadoop運行時產生文件的存儲目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.4.1/tmp</value> </property>
主要和配置的這個/home/hadoop/hadoop-2.4.1/tmp的這個tmp目錄里面的(這個tmp目錄是自己起的,自己開心就好);
而網上是這樣解決的:
打開hdfs-site.xml里配置的datanode和namenode對應的目錄,分別打開current文件夾里的VERSION,可以看到clusterID項正如日志里記錄的一樣,確實不一致,修改datanode里VERSION文件的clusterID 與namenode里的一致,再重新啟動dfs(執行start-dfs.sh)再執行jps命令可以看到datanode已正常啟動。
我感覺這樣不是很暢快解決問題,所以直接/home/hadoop/hadoop-2.4.1/tmp/dfs/data/current下面的VERSION刪除了,然后再執行一下又重新執行了格式化命令(hdfs namenode -format),最后啟動start-dfs.sh和start-yarn.sh就可以了;
2:啟動start-dfs.sh和start-yarn.sh顯示節點的類別:
1:HDFS的守護進程
(1):主節點:Namenode、SecondaryNamenode
(2):從節點:Datanode
2:YARN的守護進程
(1):主節點:ResourceManager
(2):從節點:NodeManager
3:心靈雞湯:
有時候,也許堅持下去也不會有所成就,但是放棄肯定是一無所有......致自己;