- 有時候我們start-dfs.sh啟動了hadoop但是發現datanode進程不存在
一、原因
當我們使用hadoop namenode -format格式化namenode時,會在namenode數據文件夾(這個文件夾為自己配置文件中dfs.name.dir的路徑)中保存一個current/VERSION文件,記錄clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,這樣,datanode和namenode之間的ID不一致。
二、解決方法
-
第一種:如果dfs文件夾中沒有重要的數據,那么刪除dfs文件夾,再重新運行下列指令: (刪除節點下的dfs文件夾,為自己配置文件中dfs.name.dir的路徑)
-
第二種:如果dfs文件中有重要的數據,那么在dfs/name目錄下找到一個current/VERSION文件,記錄clusterID並復制。然后dfs/data目錄下找到一個current/VERSION文件,將其中clustreID的值替換成剛剛復制的clusterID的值即可;
三、總結
其實,每次運行結束Hadoop后,都應該關閉Hadoop. stop-dfs.sh
下次想重新運行Hadoop,不用再格式化namenode,直接啟動Hadoop即可 start-dfs.sh