1.简介
HDFS允许管理员为每一个用户和每一个文件夹设置配额:命名配额和空间配额。
name quota:
该目录下的名字数量做硬性限制,为文件夹下的数量作出的限制,超过限制则会报错:quota exceed,最大值配额:Long.MAX_Valus。新创建的文件夹没有分配quota。
space quota:
设置一个文件夹的大小,如果超过则块写入会失败(副本也算)。最大的配额:Long.Max_Value。配额设置为0还是运行文件创建,但是不能向文件中写入块。文件夹不使用主机文件系统不计算在空间配额里面,主机文件系统用来记录文件源数据的数据不算在配额中。
2.设置配额
设置命名配额,即文件夹的个数
[bdp@host66 ~]$hdfs dfsadmin -setQuota 9999 /user/hive/warehouse/wid_bigdata_1049.db
设置空间配额,即分配空间的存储的大小
[bdp@host66 ~]$hdfs dfsadmin -setSpaceQuota 10g /user/hive/warehouse/wid_bigdata_1049.db
3.配额的查看
[bdp@host66 ~]$hadoop fs -count -q /user/hive/warehouse/wid_bigdata_1049.db
none inf 5368709120 5360480480 50 641 2742880 /user/hive/warehouse/wid_bigdata_1049.db
参数说明:
hadoop fs -count -q <directory>...<directory>
查询结果显示的参数为:文件夹的限额 剩余文件的限额 文件夹的空间限额 文件夹的可用空间(加上多个副本的) 文件夹下文件的大小 当前文件夹下的文件个数 文件夹下的文件所占的空间大小(不计算副本的个数)
其他参数说明:
hadoop fs -count -q [-h] [-v] [-t [逗号分隔的存储类型列表]] <目录> ... <目录>
-q选项,会报告每个目录设置的配额,以及剩余配额(查询出来的结果不包括副本的)。 如果目录没有设置配额,会报告none和inf。
-h选项以人类可读格式显示大小。
-v选项显示标题行。
-t选项显示每个存储类型配额集以及每个目录的剩余可用配额。
更详细的展示命令如下:
[bdp@host66 ~]$hadoop fs -count -q -h -v /user/hive/warehouse/wid_bigdata_1049.db
QUOTA REM_QUOTA SPACE_QUOTA REM_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
none inf 5 G 5.0 G 50 641 2.6 M /user/hive/warehouse/wid_bigdata_1049.db
4.清除配额
清除命名配额
[bdp@host66 ~]$hadoop dfsadmin -clrQuota /user/hive/warehouse/wid_bigdata_1049.db
清除空间配额
[bdp@host66 ~]$hadoop dfsadmin -clrSpaceQuota /user/hive/warehouse/wid_bigdata_1049.db