HDFS(一) 高級特性
三個高級特性——快照、配額、回收站
一、快照(snapshot):是一種備份,默認關閉
1、應用場景:
防止用戶錯誤操作
備份
試驗/測試
災難恢復
2、命令:
管理命令:
-allowsnapshot
-disallowsnapshot
操作命令:
-createshapshot
舉例:
打開快照功能(以/folder文件夾為例)
hdfs dfsadmin -allowsnapshot /folder
創建快照
hdfs dfs -createsnapshot /folder folder_20180503_01 第一份快照
hdfs dfs -createsnapshot /folder foldert_20180503_02 第二份快照
查看快照
hdfs -lssnapshottableDir
對比快照
hdfs -snapshotdiff /folder folder_20180503_01 folder_20180503_02
恢復快照
hdfs dfs -cp /folder/.snapshot/folder_20180503_01/data.txt /folder (補充知識:快照會在元文件夾下,以隱藏目錄的方式存在(如folder/.snapshot/folder_20180503_01))
3、其他:
快照信息可以在webconsole 上查看
快照的本質:將目錄拷貝了一份
二、Quota(配額):
1、名稱配額:限定hdfs目錄下存放文件/目錄的個數
命令(都是hdfs dfsadmin 命令):
-setQuota <quota> dirName1 dirName2 dirName3 文件夾實際能夠存放的文件/文件夾數量為quota-1 個
-clrQuota dirName1 dirName2 dirName3
舉例(以/myQuota1文件夾為例):
hdfs dfsadmin -setQuota 3 /myquota1 設置/myquota1文件夾下最大的文件/文件夾數量為3-1=2個
hdfs dfsadmin -clrQuota /myquota1
2、空間配額:限定hdfs目錄下,文件的大小
命令:
-setSpaceQuota <quota> [-storageType storagetype] dirName1 dirName2 dirName3
-clrSpaceQuota [-storageType storagetype] dirName1 dirName2 dirName3
舉例(以/myquota2為例):
hdfs dfsadmin -setSpaceQuota 2M /myquota2 設置/myquota2文件夾存儲的文件,大小不超過2M
註意:數據塊上傳時,即使文件本身小於2M,該數據塊實際在hdfs上占用的空間也為128M,上傳會失敗。因此在設定文件夾空間配額時,不要小於128M。
hdfs dfsadmin -clrSpaceQuota /myquota2
三、回收站(默認是關閉的)
1、配置回收站
在core-site.xml中配置回收站
<property>
<name>dfs.trash.interval</name>
<value>1440</value> 註:1440 代表一天 (1440分鐘)
</property>
2、開啟回收站後,執行hdfs dfs -rm -R /folder 操作前後,控制臺打印日誌的對比
開啟前:Deleted /folder
開啟後:Moved "hdfs://192.168.**.**:9000/folder" to trash " hdfs://192.168.**.**:9000/user/root/.Trash/Current"
相當於做了一次“剪切”操作,所以要找回刪除的文件,直接做一次 hdfs dfs -cp ** 操作即可
同樣的,oracle數據庫也有回收站,當一個表被刪除後,進入回收站,可以通過flashback(閃回)恢復表。
HDFS(一) 高級特性