前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
什么是配额管理?
Hadoop分布式文件系统(HDFS)允许管理员为每个目录设置配额。
新建立的目录没有配额。最大的配额为Long.MAX_VALUE。配额为1可以强制目录保持为空。
目录配额为对目录树上该目录下的文件及目录总数做硬性限制。
如果创建文件或目录时超过了配额,该操作会失败。
重命名不会改变该目录的配额。如果重命名操作会导致违反配额限制,该操作将会失败。
如果尝试设置一个配额而现有文件数量已经超出了这个新配额,则设置失败。
配额和 FSImage 保持一致。当启动时,如果 FSImage 违反了某个配额限制,则启动失败并生成错误报告。
设置或删除一个配额会创建相应的日志记录。
配置管理 Shell 命令
下面的命令或选项为用于支持配额的,前两个为管理员命令。
hdfs dfsadmin [-setQuota <quota> <dirname>...<dirname>]
把每个目录配额设为 ,这个命令会在每个目录上尝试,如果 不是一个正的长整型数,目录或文件名不存在,或者目录超过配额限,则会产生错误报告。
hdfs dfsadmin [-clrQuota <dirname>...<dirname>]
为每个目录删除配额。这个命令会在每个目录上尝试,如果目录不存在或为文件,则会产生错误报告。如果目录原来没有设置配额则不会报错。
hadoop fs -count -q <dirname>...<dirname>
使用 -q 选项,会报告每个目录设置的配置以及剩余配额。如果目录没有设置配额,会报告 none 和 inf,如下所示:
[root@node1 ~]# hadoop fs -count -q /data
none inf none inf 2 4 0 /data