Hadoop trash恢復數據_#安全

也就是説,我們其實已經實際刪除了某些數據塊,但是記錄的元數據因為一些故障導致沒有進行同步,就會出現這種情況。

解決方法

首先強制退出安全模式:

hdfs dfsadmin -safemode forceExit

接着,我們進入 WEB 管理界面,刷新一下。

Hadoop trash恢復數據_IT_02

此時,我們就會發現那些數據塊丟失的文件,將這些文件按照路徑在 HDFS 中全部刪除即可。

如果你想要對文件進行恢復,那麼則需要請教相關專業人士,使用磁盤修復工具進行處理。

刪除完成後,我們重啓集羣,進入 WEB 界面查看是否正常:

Hadoop trash恢復數據_#安全_03

如果刪除過程中遇到報錯,如下所示:

Permission denied: user=master, access=WRITE, inode=“/benchmarks/TestDFSIO”:root:supergroup:drwxr-xr-x

權限不足,無法進行寫操作。

我們需要先使用 root 賬號對操作目錄授權,或者直接關閉 HDFS 權限驗證。

方法一

# 使用 `root` 賬號對操作目錄授權
hdfs dfs -chmod -R 777 /benchmarks/TestDFSIO

方法二

不建議,會影響集羣安全。

# 直接關閉 HDFS 權限驗證,在 hdfs-site.xml 文件中添加如下配置:
<property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>

添加完成後,分發同步該文件,重啓集羣后生效。