首先:Hadoop从2.4.0版本开始支持hdfs的ACL
官网参考hadoop2.6.5
一、设置目录下的文件数量上限
[root@node4 ~]# hdfs dfsadmin -setQuota 2 /ldata01
[root@node4 ~]# hdfs dfs -mkdir /ldata01/test2
mkdir: The NameSpace quota (directories and files) of directory /ldata01 is exceeded: quota=2 file count=3
二、设置文件目录大小
hdfs dfsadmin -setSpaceQuota 4000 /finance
hdfs dfsadmin -clrSpaceQuota /finance
##将列出block在哪个位置
hdfs fsck /user_a/eshadoop-master -files -blocks -locations
hdfs dfs -stat "%o %r" /finance/apache-nutch-1.2.rar 查看某个文件有几个副本,及每个block的大小~~~
解释
- Name Quotas:设置某一个目录下文件总数
- Space Quotas:设置某一个目录下可使用空间大小
1、Name Quotas
计算公式:QUOTA – (DIR_COUNT + FILE_COUNT) = REMAINING_QUOTA
这里的 10000 是指 DIR_COUNT + FILE_COUNT = 10000,最大值為 Long.Max_Value
启用设定:hadoop dfsadmin -setQuota 10000 /user/seamon
清除設定: hadoop dfsadmin -clrQuota /user/seamon
2、Space Quotas
计算公式:SPACE_QUOTA – CONTENT_SIZE = REMAINING_SPACE_QUOTA
可以使用 m, g, t 代表 MB, GB, TB
启用设定: hadoop dfsadmin -setSpaceQuota 1g /user/seamon/
清除設定: hadoop dfsadmin -clrSpaceQuota /user/seamon