三个高级特性——快照、配额、回收站
一、快照(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(闪回)恢复表。