1. 程式人生 > >datanode啟動之後很快有自己關閉掉

datanode啟動之後很快有自己關閉掉

因為一直存在namenode重啟無法正常啟動,必須每次格式化namenode的情況,所以今天開始設定了core-site.xml中hadoop.tm.dir的設定。設定之後namenode終於擺脫了以往重啟就啟動不了的問題。但是帶來了新的問題,就是datanode每次啟動之後很快就會死掉,查看了datanode的log,顯示連線master失敗。

回顧了一下今天的改動,覺得也許是因為,core-site.xml檔案的改動帶來的影響,進而考慮到,也許這個檔案需要在所有的hadoop node上都進行修改,與是嘗試在datanode上也進行修改。然後重啟,發現一切恢復正常。


除了上面一種情況外還碰到了其他情況。

因為hadoop跑在虛擬機器上,建立虛擬機器的時候分配的空間只有8G,系統幾乎用掉4G,還剩大概4G多空間。跑了幾個hadoop程式之後,硬碟空間急劇減少,最後非常誇張的沾滿了硬碟。其實這其中大部分資料都是臨時資料或者log之類的沒用的資料。然後就需要清理檔案,我採用了很暴力的方式,直接刪除了3臺hadoop node下的hadoop.tmp.dir下的所有子檔案。然後重啟hadoop,顯示沒有datanode連線。而且eclipse外掛顯示一些本應該刪除的檔案,這裡當然是namenode沒有清理造成的髒資料。

需要格式化namenode,然後啟動hadoop,這個時候eclipse外掛裡面顯示正確,但是依然datanode很快就掛掉。

後來參考一篇文章

Hadoop的datanode無法啟動

hdfs-site中配置的dfs.data.dir為/usr/local/hadoop/hdfs/data
用bin/hadoop start-all.sh啟動Hdoop,用jps命令檢視守護程序時,沒有DataNode。

訪問http://localhost:50070,點選頁面中的Namenode logs連結,在logs頁面點選hadoop-hadoop-datanode-ubuntu.log 連結,
發現在日誌中有此提示:Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxr-xrwx 。原因是data資料夾許可權問題,執行:chmod g-w /usr/local/hadoop/hdfs/data,修改資料夾許可權後,再次啟動Hadoop,問題解決。

覺得需要做的更徹底寫,於是把3臺虛擬機器上的hadoop.tmp.dir資料夾整個刪除掉。這裡是這樣的,因為一開始沒有這個資料夾的時候hadoop是可以執行的,所以刪除掉最壞的結果也還是可以恢復正常,所以大膽的刪除掉了。重新格式化namenode,然後啟動hadoop,一切恢復正常。