資陽視頻網(wǎng)站建設(shè)廣州seo服務(wù)公司
文章目錄
- 安全模式相關(guān)命令
- 分析集群為什么一直處于安全模式
- 解決方法
安全模式相關(guān)命令
# 查看安全模式狀態(tài)
hdfs dfsadmin -safemode get# 進(jìn)入安全模式
hdfs dfsadmin -safemode enter# 離開安全模式
hdfs dfsadmin -safemode leave# 強(qiáng)制退出安全模式
hdfs dfsadmin -safemode forceExit# 等待安全模式
hdfs dfsadmin -safemode wait
等待安全模式,通常情況下在腳本中使用,當(dāng)集群退出安全模式后,立馬執(zhí)行相關(guān)操作。
分析集群為什么一直處于安全模式
集群啟動(dòng)后,發(fā)現(xiàn)一直處于安全模式中,進(jìn)入 WEB 界面查看,還有一大段提示,如下:
系統(tǒng)報(bào)告稱,共有 6288
個(gè)數(shù)據(jù)塊,還需要額外的 16
個(gè)數(shù)據(jù)塊才能達(dá)到總共 6311
個(gè)數(shù)據(jù)塊的閾值 0.999
。
通俗來說就是,當(dāng)前系統(tǒng)中元數(shù)據(jù)與記錄數(shù)據(jù)塊前后不一致,而 Hadoop 默認(rèn)要求最大的誤差閥值為 0.001
,如果超過這個(gè)值,就會(huì)導(dǎo)致 Hadoop 一直處于安全模式。
也就是說,我們其實(shí)已經(jīng)實(shí)際刪除了某些數(shù)據(jù)塊,但是記錄的元數(shù)據(jù)因?yàn)橐恍┕收蠈?dǎo)致沒有進(jìn)行同步,就會(huì)出現(xiàn)這種情況。
解決方法
首先強(qiáng)制退出安全模式:
hdfs dfsadmin -safemode forceExit
接著,我們進(jìn)入 WEB 管理界面,刷新一下。
此時(shí),我們就會(huì)發(fā)現(xiàn)那些數(shù)據(jù)塊丟失的文件,將這些文件按照路徑在 HDFS 中全部刪除即可。
如果你想要對(duì)文件進(jìn)行恢復(fù),那么則需要請(qǐng)教相關(guān)專業(yè)人士,使用磁盤修復(fù)工具進(jìn)行處理。
刪除完成后,我們重啟集群,進(jìn)入 WEB 界面查看是否正常:
如果刪除過程中遇到報(bào)錯(cuò),如下所示:
Permission denied: user=master, access=WRITE, inode=“/benchmarks/TestDFSIO”:root:supergroup:drwxr-xr-x
權(quán)限不足,無法進(jìn)行寫操作。
我們需要先使用 root
賬號(hào)對(duì)操作目錄授權(quán),或者直接關(guān)閉 HDFS 權(quán)限驗(yàn)證。
方法一
# 使用 `root` 賬號(hào)對(duì)操作目錄授權(quán)
hdfs dfs -chmod -R 777 /benchmarks/TestDFSIO
方法二
不建議,會(huì)影響集群安全。
# 直接關(guān)閉 HDFS 權(quán)限驗(yàn)證,在 hdfs-site.xml 文件中添加如下配置:
<property><name>dfs.permissions</name><value>false</value>
</property>
添加完成后,分發(fā)同步該文件,重啟集群后生效。