前言

本文隶属于专栏《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
上一篇 下一篇