HDFS QUOTA测试
HDFS的quota功能其实在咱们大集群版本0.20.203就已经有了。但是在那个版本中存在几个致命的bug,所以大集群没用上线quota,但是这些bug在最新版本中已经得到解决。
最新关于quota的bug的相关信息见:
目前依然存在的并对2.4版本有影响的bug:
(1)、https://issues.apache.org/jira/browse/HDFS-4897 :拷贝设置过quota的目录,拷贝之后的目录quota信息会丢失。
(2)、https://issues.apache.org/jira/browse/HDFS-6192 :通过webhdfs和HttpFs api去设置quota时,quota不生效
以上两个bug,其中第一个需要测试确认,第二个bug,由于我们不会使用webhdfs和httpfs api去设置quota,所以不用考虑。
一、 说明及使用场景
在多人共用集群的情况下,设置quota非常重要,特别是在处理大量数据时,一不小心就把所有的空间用完造成别人无法存取。咱们现在的大集群就是由于没有设置quota,各个业务线不会因为空间不足而积极删除历史数据,导致整个集群存储了大量过时无效的数据,严重浪费存储空间。
hdfs的quota设定是针对目录而不是账号,所以在管理上最好让每一个账号只能写入某一个目录(/user/${user_name}),然后对各个目录加上quota进行限定。
Quota设定方式有两种:
l Name Quotas:类似ulimit里的hard limit,也就是设定某个目录下文件和目录的总数
l Space Quotas:设定某个目录下使用的空间大小
这两种方式可以独立使用也可以同时使用,既可以对一个目录同时设置name quotas和space quotas,也可以设置一种quota。