天天看点

hdfs-quota

  1. 简介

HDFS允许管理员为每一个用户和每一个文件夹设置配额:命名配额和空间配额。

  • name quota:

    该目录下的名字数量做硬性限制,为文件夹下的数量作出的限制,超过限制则会报错:quota exceed,最大值配额:Long.MAX_Valus。新创建的文件夹没有分配quota。

  • space quota

设置一个文件夹的大小,如果超过则块写入会失败(副本也算)。最大的配额:Long.Max_Value。配额设置为0还是运行文件创建,但是不能向文件中写入块。文件夹不使用主机文件系统不计算在空间配额里面,主机文件系统用来记录文件源数据的数据不算在配额中。

  1. 使用方法
  • 设置

set HDFS name quotas:

hadoop dfsadmin -setQuota <max_number> <directory>
           

set HDFS space quotas:

hadoop dfsadmin -setSpaceQuota <max_size> <directory>
           
  • 查询
hadoop fs -count -q <directory>...<directory> 
查询结果显示的参数为:文件夹的限额 剩余文件的限额 文件夹的空间限额 文件夹的可用空间(加上多个副本的) 文件夹下文件的大小 当前文件夹下的文件个数 文件夹下的文件所占的空间大小(不计算副本的个数)
hadoop fs -count -q [-h] [-v] [-t [逗号分隔的存储类型列表]] <目录> ... <目录>
-h选项以人类可读格式显示大小。-v选项显示标题行。-t选项显示每个存储类型配额集以及每个目录的剩余可用配额
           

使用-q选项,会报告每个目录设置的配额,以及剩余配额(查询出来的结果不包括副本的)。 如果目录没有设置配额,会报告none和inf。

  • 清除

name quota

hadoop dfsadmin -clrQuota <directory>
           

space quota

hadoop dfsadmin -clrSpaceQuota <directory>
           

继续阅读