org.apache.hadoop.dfs.SafeModeException

運行hadoop程序時,有時候會報以下錯誤:

org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode

這個錯誤應該還滿常見的吧(至少我運行的時候是這樣的)

那我們來分析下這個錯誤,從字面上來理解:

Name node is in safe mode

說明Hadoop的NameNode處在安全模式下。

那什麼是Hadoop的安全模式呢?

在分佈式文件系統啓動的時候,開始的時候會有安全模式,當分佈式文件系統處於安全模式的情況下,文件系統中的內容不允許修改也不允許刪除,直到安全模式結束。

安全模式主要是爲了系統啓動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必要的複製或者刪除部分數據塊。

運行期通過命令也可以進入安全模式。在實踐過程中,系統啓動的時候去修改和刪除文件也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。

現在就清楚了,那現在要解決這個問題,我想讓Hadoop不處在safe mode 模式下,能不能不用等,直接解決呢?

答案是可以的,只要在Hadoop的目錄下輸入:

bin/hadoop dfsadmin -safemode leave 

也就是關閉Hadoop的安全模式,這樣問題就解決了。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章