hdfs一直處於safemode模式


目前來看,導致hdfs一直處於safemode模式最直接的原因是已成功復制的塊的比例沒有達到默認值,塊的損壞也會造成一直處於安全模式。

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

hadoop fsck /

以上是查看hdfs的根目錄下的所有文件健康狀況,如果有損壞的文件,就會提示:

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

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

hadoop fsck /user

找到損壞的文件,刪除掉即可,最終在使用fsck檢查hdfs文件系統已完好:

但是看到Missing replicas一欄中,有321個副本丟失了,比如某個文件的復制因子是3,結果只有2個,那么表示有1個副本丟失了,所有的文件丟失副本數之后就是Missing replicas。同樣使用fsck遍歷所有目錄,查看究竟是那些文件的冗余數量不夠。

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

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

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

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

2)以下就是hdfs正常情況的形式:

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

藍色箭頭指示了“Average block replication”塊平均復制因子2.8,因為其中有一個文件傳到集群上是系統配置的復制因子是1,因此其復制因子是1,才導致平均復制因子是1.

3)修改配置文件中的復制因子值,並不會改變修改之前集群中文件的復制因子,必須重啟hadoop才能使其生效。也可以使用命令行的方式修改,不用重新啟動即可生效,不過依然不會修改之前文件的復制因子。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM