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的配额管理的主要内容,如果未能解决你的问题,请参考以下文章