Hadoop一直處於安全模式(hadoop去掉保護模式)


轉自:hive的hiveserver2模式啟動不起來,發現Hadoop一直處於安全模式 - -小魚- - 博客園 (cnblogs.com)

hadoop去掉保護模式

命令hadoop fs –safemode get 查看安全模式狀態
命令hadoop fs –safemode enter 進入安全模式狀態
命令hadoop fs –safemode leave 離開安全模式狀態

  hdfs dfsadmin -safemode leave

第一步:用hadoop fsck 檢查hadoop文件系統

命令:Hadoop fsck

 1 hadoop  fsck
 2 
 3 Usage: DFSck <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
 4         <path>             檢查這個目錄中的文件是否完整
 5 
 6         -move               破損的文件移至/lost+found目錄
 7         -delete             刪除破損的文件
 8 
 9         -openforwrite   打印正在打開寫操作的文件
10 
11         -files                 打印正在check的文件名
12 
13         -blocks             打印block報告 (需要和-files參數一起使用)
14 
15         -locations         打印每個block的位置信息(需要和-files參數一起使用)
16 
17         -racks               打印位置信息的網絡拓撲圖 (需要和-files參數一起使用)

觀察hadoop集群狀態

CORRUPT FILES: 2 #損壞了兩個文件
MISSING BLOCKS: 2 #丟失了兩個塊

 1 Status: CORRUPT  2  Number of data-nodes:    1
 3  Number of racks:        1
 4  Total dirs:            72
 5  Total symlinks:        0
 6 
 7 Replicated Blocks:
 8  Total size:    574348338 B
 9  Total files:    76
10  Total blocks (validated):    74 (avg. block size 7761464 B)
11   ********************************
12   UNDER MIN REPL'D BLOCKS:    35 (47.2973 %)
13   MINIMAL BLOCK REPLICATION:    1
14   CORRUPT FILES:    35
15   MISSING BLOCKS:    35
16   MISSING SIZE:        327840971 B
17   ********************************
18  Minimally replicated blocks:    39 (52.7027 %)
19  Over-replicated blocks:    0 (0.0 %)
20  Under-replicated blocks:    38 (51.351353 %)
21  Mis-replicated blocks:        0 (0.0 %)
22  Default replication factor:    3
23  Average block replication:    0.527027
24  Missing blocks:        35
25  Corrupt blocks:        0
26  Missing replicas:        160 (38.46154 %)
27 
28 Erasure Coded Block Groups:
29  Total size:    0 B
30  Total files:    0
31  Total block groups (validated):    0
32  Minimally erasure-coded block groups:    0
33  Over-erasure-coded block groups:    0
34  Under-erasure-coded block groups:    0
35  Unsatisfactory placement block groups:    0
36  Average block group size:    0.0
37  Missing block groups:        0
38  Corrupt block groups:        0
39  Missing internal blocks:    0
40 FSCK ended at Wed Jan 12 20:13:16 CST 2022 in 28 milliseconds

第二步 打印hadoop文件的狀態信息

命令:hadoop fsck / -files -blocks -locations -racks

可以看到正常文件后面都有ok字樣,有MISSING!字樣的就是丟失的文件。

/tmp/hadoop-yarn/staging/history/done_intermediate/root/job_1641978125772_0001_conf.xml_tmp 0 bytes, replicated: replication=3, 0 block(s): OK

/tmp/hadoop-yarn/staging/root/.staging/job_1641780921957_0001/job.split 315 bytes, replicated: replication=10, 1 block(s): MISSING 1 blocks of total size 315 B

根據這個的路勁可以在hadoop瀏覽器界面中找到對應的文件路徑,如下圖

hadoop fs -chmod -R  777 /tmp 

 

 

 

第三步:修復兩個丟失、損壞的文件

 

[root@node03 conf]# hdfs debug recoverLease -path /flink-checkpoint/626ea65de810a2ec3b1799b605a6a995/chk-175/19195239-a205-4462-921d-09e0483a4080 -retries 10

[root@node03 conf]# hdfs debug recoverLease -path /flink-checkpoint/626ea65de810a2ec3b1799b605a6a995/chk-175/_metadata -retries 10

 

..Status: HEALTHY 集群狀態:健康

現在重新啟動hadoop就不會一直處於安全模式了,hiveserver2也能正常啟動了。。

第四:意外狀況

如果修復不了,或者提示修復成功但是集群狀態還是下面這樣:

.............Status: CORRUPT					#Hadoop狀態:不正常 Total size: 273821489 B Total dirs: 403 Total files: 213 Total symlinks: 0 Total blocks (validated): 201 (avg. block size 1362295 B) ******************************** UNDER MIN REPL'D BLOCKS: 2 (0.99502486 %) dfs.namenode.replication.min: 1 CORRUPT FILES: 2 #損壞了兩個文件 MISSING BLOCKS: 2 #丟失了兩個塊 MISSING SIZE: 6174 B CORRUPT BLOCKS: 2 ******************************** Minimally replicated blocks: 199 (99.004974 %) Over-replicated blocks: 0 (0.0 %) Under-replicated blocks: 0 (0.0 %) Mis-replicated blocks: 0 (0.0 %) Default replication factor: 3 Average block replication: 2.8208954 Corrupt blocks: 2 Missing replicas: 0 (0.0 %) Number of data-nodes: 3 Number of racks: 1 FSCK ended at Fri Aug 23 10:43:11 CST 2019 in 12 milliseconds 

1、如果損壞的文件不重要

首先:將找到的損壞文件備份好

然后:執行[root@node03 export]# hadoop fsck / -delete將損壞文件刪除

[root@node03 export]# hadoop fsck / -delete 

此命令一次不成功可以多試幾次,前提是丟失、損壞的文件不重要!!!!!!!!!!

2、如果損壞的文件很重要不能丟失

可以先執行此命令:hadoop fs –safemode leave 強制離開安全模式狀態

[root@node03 export]# hadoop fs –safemode leave 

此操作不能完全解決問題,只能暫時讓集群能夠工作!!!!

而且,以后每次啟動hadoop集群都要執行此命令,直到問題徹底解決。

如果並非以上問題請轉這篇:
https://www.cnblogs.com/-xiaoyu-/p/12158984.html

 


免責聲明!

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



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