本文共 2407 字,大约阅读时间需要 8 分钟。
hadoop版本:2.6.5
HDFS快照(snapshot)是对文件系统子树在给定时刻的一个只读副本。由于并不真正复制数据,因此快照非常高效,它们简单的记录每个文件的元数据和块列表,这对于重构快照时刻的文件系统内容已经足够了。快照一般用于数据备份。
在HDFS中快照功能默认关闭。开启快照
$ hdfs dfs -lsr /test #test为实验目录drwxr-xr-x - hadoop supergroup 0 2018-07-13 23:52 /test/tmp-rw-r--r-- 2 hadoop supergroup 1366 2018-07-13 23:52 /test/tmp/README.txt$ hdfs dfsadmin -allowSnapshot /test #为test开启快照功能Allowing snaphot on /test succeeded
创建快照
$ hdfs dfs -createSnapshot /test snapCreated snapshot /test/.snapshot/snap# 快照创建后会在test/.snapshot/snap下创建一个与test一样的目录结构$ hdfs dfs -lsr /test/.snapshot/snapdrwxr-xr-x - hadoop supergroup 0 2018-07-13 23:52 /test/.snapshot/snap/tmp-rw-r--r-- 2 hadoop supergroup 1366 2018-07-13 23:52 /test/.snapshot/snap/tmp/README.txt
重命名快照
$ hdfs dfs -renameSnapshot /test snap snap_1# 重命令后,快照目录也会被修改$ hdfs dfs -ls /test/.snapshot drwxr-xr-x - hadoop supergroup 0 2018-07-14 01:08 /test/.snapshot/snap_1
比较快照与目录的不同
hdfs snapshotDiff /test . snap_1 # test目录与其快照比较Difference between current directory and snapshot snap_1 under directory /test:
删除快照
$ hdfs dfs -deleteSnapshot /test snap_1
列出当前用户的所有快照
$ hdfs lsSnapshottableDirdrwxr-xr-x 0 hadoop supergroup 0 2018-07-14 01:08 1 65536 /test
使用快照恢复文件
$ hdfs dfs rmr /test/* #删除test目录下的文件$ hdfs dfs -cp /test/.snapshot/snap_1/* /test # 从快照目录下恢复$ hdfs dfs -lsr /testdrwxr-xr-x - hadoop supergroup 0 2018-07-14 01:22 /test/tmp-rw-r--r-- 2 hadoop supergroup 1366 2018-07-14 01:22 /test/tmp/README.txt
HDFS配额(quota)指对HDFS文件和目录的储存限制,就是管理员可以为用户所能使用的空间进行配额限制。比如最大只能使用2G等。
HDFS配额分为命名配额和空间配额。
目录配额:控制的目录所有文件/目录的个数,设置的数值N表示可以存放N - 1个子文件/目录。设置命名配额
$ hdfs dfs -mkdir /quota #新建/quota目录$ hdfs dfsadmin -setQuota 1 /quota # 设置quota目录配额为1,即该目录不能创建子目录和子文件。$ hdfs dfs -mkdir /quota/1mkdir: The NameSpace quota (directories and files) of directory /quota is exceeded: quota=1 file count=2
清除命名配额
$ hdfs dfsadmin -clrQuota /quota
空间配额:控制目录的总大小。
设置空间配额
$ hdfs dfs -mkdir /space_quota #新建目录space_quota$ hdfs dfsadmin -setSpaceQuota 128m /space_quota #设置space_quota空间配额为128M$ ls -lh test.zip-rw-r--r--. 1 hadoop hadoop 271M Jul 13 20:06 test.zip$ hdfs dfs -put test.zip /space_quota #上传文件大于配额大小put: The DiskSpace quota of /space_quota is exceeded: quota = 134217728 B = 128 MB but diskspace consumed = 268435456 B = 256 MB
清除空间配额
$ hdfs dfsadmin -setSpaceQuota 20m /space_quota
本文介绍了HDFS快照与配额的功能与使用。
转载地址:http://bzjmb.baihongyu.com/