hdfs一直處於safemode模式

目前來看,致使hdfs一直處於safemode模式最直接的緣由是已成功複製的塊的比例沒有達到默認值,塊的損壞也會形成一直處於安全模式。安全

1)文件系統中有損壞的文件,使用fsck命令來查看oop

hadoop fsck /

以上是查看hdfs的根目錄下的全部文件健康情況,若是有損壞的文件,就會提示:命令行

 The filesystem under path '/' is CORRUPT(損壞)

接下來就是排錯,查看到底是哪一個目錄下有損壞文件,使用fsck遍歷檢查根目錄下的每一個子目錄,查看時候有損壞文件,例如查看user目錄:3d

hadoop fsck /user

找到損壞的文件,刪除掉便可,最終在使用fsck檢查hdfs文件系統已無缺:code

可是看到Missing replicas一欄中,有321個副本丟失了,好比某個文件的複製因子是3,結果只有2個,那麼表示有1個副本丟失了,全部的文件丟失副本數以後就是Missing replicas。一樣使用fsck遍歷全部目錄,查看到底是那些文件的冗餘數量不夠。blog

首先查看/user/Englishinput,命令以下:hadoop

hadoop fsck /user/EnglishInput -files -blocks -locations

僅僅這一個目錄就有265個備份丟失,刪除此目錄。input

Under開頭的記錄就是異常塊的狀況,數字.開頭的就是正常的塊狀況。io

2)如下就是hdfs正常狀況的形式:class

紅色的箭頭表示對一個文件的檢查狀況:1 block(s)表示這個文件只由一個塊組成,ok表示文件處於正常狀態。

藍色箭頭指示了「Average block replication」塊平均複製因子2.8,由於其中有一個文件傳到集羣上是系統配置的複製因子是1,所以其複製因子是1,才致使平均複製因子是1.

3)修改配置文件中的複製因子值,並不會改變修改以前集羣中文件的複製因子,必須重啓hadoop才能使其生效。也可使用命令行的方式修改,不用從新啓動便可生效,不過依然不會修改以前文件的複製因子。

4)使用第二種方法的結果以下所示;

相關文章
相關標籤/搜索