HDFS的”時間機器“--Trash回收站

一、場景

很多用過HDFS的人都會有過這種經歷,在HDFS上操作一組數據,不小心執行了一個命令“hdfs dfs -rm -r /xxx/xxx”,沒有刪除提示,整個目錄下幾個G、T的數據,一下子就沒有了。刪除之後纔會發現這個目錄下的數據有多重要,這個時候先不要準備刪庫跑路。rm -rf /不好解決,但是在HDFS中有個功能可以輕鬆解決這個問題,那就是Trash回收站功能。

二、開啓回收站

2.1 原生Hadoop配置

修改Hadoop每個節點的core-site.xml文件,增加一個屬性。
fs.trash.interval是在指在這個回收週期之內,文件實際上是被移動到trash的這個目錄下面,而不是馬上把數據刪除掉。等到回收週期真正到了以後,hdfs纔會將數據真正刪除。默認的單位是分鐘。 設置0則關閉該功能。

  <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
  </property>

CDH配置
進入HDFS配置。搜索fs.trash.interval參數
在這裏插入圖片描述

三、測試

上傳個test.txt文件到/user/admin/目錄下

hdfs dfs -put test.txt /user/admin/

刪除該文件

[root@master ~]# hdfs dfs -rm -r /user/admin/test.txt
20/03/17 17:15:41 INFO fs.TrashPolicyDefault: Moved: 'hdfs://master.cdh:8020/user/admin/test.txt' to trash at: hdfs://master.cdh:8020/user/root/.Trash/Current/user/admin/test.txt

提示該文件已經移到/user/root/.Trash/Current/user/admin/test.txt,當前登陸用戶家目錄下的.Trash目錄。
查看該目錄,被刪除的文件已經在裏面了

[root@master ~]# hdfs dfs -ls /user/root/.Trash/Current/user/admin/
Found 1 items
-rw-r--r--   3 root admin          4 2020-03-17 17:13 /user/root/.Trash/Current/user/admin/test.txt

恢復文件,就是將回收站的文件移回之前所在的目錄

[root@master ~]# hdfs dfs -mv  /user/root/.Trash/Current/user/admin/test.txt /user/admin

清空回收站命令

[root@master ~]# hdfs dfs -expunge
20/03/17 17:25:02 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://master.cdh:8020/user/root/.Trash
20/03/17 17:25:02 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://master.cdh:8020/user/root/.Trash
20/03/17 17:25:02 INFO fs.TrashPolicyDefault: Deleted trash checkpoint: /user/root/.Trash/200317160000
20/03/17 17:25:02 INFO fs.TrashPolicyDefault: TrashPolicyDefault#createCheckpoint for trashRoot: hdfs://master.cdh:8020/user/root/.Trash
20/03/17 17:25:02 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/root/.Trash/200317172502

跳過回收站,直接刪除命令

[root@master ~]# hdfs dfs -rm -r -skipTrash /user/root/123123
Deleted /user/root/123123
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章