Hadoop HDFS 配额指导

本文固定链接:https://www.askmac.cn/archives/hadop-hdfs-quotas-guide.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html

1概述

 

HDFS允许管理员为名称的数量进行配额限制,并且为单独的目录设置使用空间得大小。

命名限额和空间限额是独立的,但是管理员实施的时候这2者是密切配合的(www.askmac.cn)。

 

 

2.名称限额

 

名称限额是根目录中的目录名称文件的硬性限制。如果达到了这个限制,创建文件和目录将会失败。限额也会在重命名操作上起作用,如果重命名也满足限制条件,这个操作也将失败。即使新的配额已经让当前的目录违反了,这个设置操作任然会成功(设置并不会去校验)。一个新创建的目录不会分配配额。最大的配额是Long.Max_Value。配额强制一个目录保持为空(一个目录的数量就是其自身的配额)

 

在fsimage上,配额是持续性的。当启动时,如果fsimage已经违背了一个配额(也行是fsimage被偷偷的修改),每一个违反都会打印一个警告。设置或删除创建一个日志条目的配额。

3.空间配额

 

空间配额是在根目录中文件所使用的空间大小的硬性限制。如果配额不允许一个完整块写入,块分配就会失败。每个副本块的数目与配额相对(计算配额)。同样的,配额也限制了重命名。最大的配额是Long.Max_Value。一个为0的配额仍然允许创建文件,但是文件中不允许添加块。目录不使用主机的文件系统,也不计算空间配额。主机文件系统中用于保存文件源数据的也不计算文件配额。配额会由于副本因子而关联的变化;变更文件的复制因子会透支或归还配额(www.askmac.cn)。

 

在fsimage上,配额是持续性的。当启动时,如果fsimage已经违背了一个配额(也行是fsimage被偷偷的修改),每一个违反都会打印一个警告。设置或删除创建一个日志条目的配额。

 

4.管理员命令

 

配额由一组管理员命令来管理。

 

hdfs dfsadmin -setQuota <N> <directory>…<directory>

 

为目录设置为N的名称配额。对每个目录的设置,如果失败会有报告:N不是一个正整数,目录不存在或它是一个文件,或者目录已经超过了新的配额(www.askmac.cn)。

 

hdfs dfsadmin -clrQuota <directory>…<directory>

 

移除一个目录上的任何名称限额。对每个目录的设置,如果失败会有报告:目录不存在或者其是一个文件。如果目录没有配合其将不会失败。

hdfs dfsadmin -setSpaceQuota <N> <directory>…<directory>

 

为目录设置N字节的空间限额。这个是在根目录中所有文件的硬性大小限制。

空间配合也将复制考虑在内,例如如果1GB的数据有3的复制因子,将消耗3GB的限额。N也可有其他的2进制后缀,例如50g,2t。对于每个目录,如果失败会有报告:N不是一个正整数,目录不存在或它是一个文件,或者目录已经超过了新的配额(www.askmac.cn)。

 

hdfs dfsadmin -clrSpaceQuota <directory>…<directory>

 

移除目录上的空间配额。对每个目录的设置,如果失败会有报告:目录不存在或者其是一个文件。如果目录没有配合的话,这个操作不会失败。

 

 

5.报告命令

 

一个拓展的HDFS shell命令用来打印限额的值和当前使用的名称和字节数目

hadoop fs -count -q [-h] [-v] <directory>…<directory>

 

-q选项,也打印出每个目录的名称限额的值,可用的命名限额,空间限额设置,和现在可用的限额空间。如果一个目录没有限额设置,报告的值是none和inf。-h选项以人类的直观格式显示。-v选项显示标题行。

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号