HDFS的配额管理

Posted 大数据一ITSTAR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS的配额管理相关的知识,希望对你有一定的参考价值。

配额是HDFS为每个目录分配的大小空间,新建立的目录是没有配额的,最大的配额是Long.Max_Value。配额为1可以强制目录保持为空。


配额简介


Hadoop分布式文件系统(HDFS)允许管理员为每个目录设置配额。 目录配额是对目录树上该目录下的名字数量做硬性限制。如果创建文件或目录时超过了配额,该操作会失败。重命名不会改变该目录的配额;如果重命名操作会导致违反配额限制,该操作将会失败。如果尝试设置一个配额而现有文件数量已经超出了这个新配额,则设置失败。

配额和fsimage保持一致。当启动时,如果fsimage违反了某个配额限制(也许fsimage被偷偷改变了),则启动失败并生成错误报告。设置或删除一个配额会创建相应的日志记录。

下面的新命令或新选项是用于支持配额的。 前两个是管理员命令。

1. dfsadmin -setquota <N> <directory>...<directory> 把每个目录配额设为N。这个命令会在每个目录上尝试, 如果N不是一个正的长整型数,目录不存在或是文件名, 或者目录超过配额,则会产生错误报告。

2. dfsadmin -clrquota <directory>...<director> 为每个目录删除配额。这个命令会在每个目录上尝试,如果目录不存在或者是文件名不存在,则会产生错误报告。如果目录原来没有设置配额不会报错。

3. fs -count -q <directory>...<directory> 使用-q选项,会报告每个目录设置的配额,以及剩余配额。 如果目录没有设置配额,会报告none和inf。


配额的类型


1. 名称配额

1. 用于设置该目录中能够存放的最多文件(目录)个数。

2. 空间配额

2. 用于设置该目录中最大能够存放的文件大小。


配额的应用案例


1. 设置名称配额

1. 命令:dfsadmin -setQuota <N> <directory>...<directory>

dfsadmin -clrQuota <directory>...<directory>

2. 示例:设置/input目录的名称配额为3

hdfs dfsadmin -setQuota 3 /input

清除/input目录的名称配额

hdfs dfsadmin -clrQuota  /input

2. 设置空间配额

1. 命令:dfsadmin -setSpaceQuota <quota> <dirname>...<dirname>

dfsadmin -clrSpaceQuota <dirname>...<dirname>

2. 示例:设置/input目录的空间配额为1M

hdfs dfsadmin -setSpaceQuota 1048576 /input

清除input目录的空间配额

hdfs dfsadmin -clrSpaceQuota /input

注意:如果hdfs文件系统中的文件个数或者大小超过了配额限制,会出现错误。


以上是关于HDFS的配额管理的主要内容,如果未能解决你的问题,请参考以下文章

HDFS配额指南

hdfs配额查询

HDFS 配额(Quotas)指南 -- Apache Hadoop 2.9.0

HDFS 高级特性

linux使用磁盘配额管理

配额管理