HDFS 配额教程
名称配额(Name Quota)
名称配额是在对应的目录下所有文件和目录名称的数量上的限制。
当超过这个配额的时候,文件或目录就会创建失败,重命名后名称配额仍然有效。
步骤
- 创建一个测试目录
- 设置创建的目录的名称配额
- 查看目录的配额信息
- put 文件进行名称配额测试
- 清除配额限制
- 再次 put 一个文件
创建一个测试目录
hdfs dfs -mkdir /shitao/test_quota1
设置创建的目录的名称配额
hdfs dfsadmin -setQuota 2 /shitao/test_quota1
查看目录的配额信息
hdfs dfs -count -q /shitao/test_quota1
状态信息
| 状态 | 文件数限额 | 可用文件数 | 空间限额大小(字节) | 可用空间大小(字节) | 目录数 | 文件数 | 总大小 | 文件/目录名 |
|---|---|---|---|---|---|---|---|---|
| 设置前 | none | inf | none | inf | 1 | 0 | 0 | /shitao/test_quota |
| 设置后 | 2 | 1 | none | inf | 1 | 0 | 0 | /shitao/test_quota |
put 文件进行名称配额测试
hdfs dfs -put demo.csv /shitao/test_quota1/
hdfs dfs -count -q /shitao/test_quota1
| 状态 | 文件数限额 | 可用文件数 | 空间限额大小(字节) | 可用空间大小(字节) | 目录数 | 文件数 | 总大小 | 文件/目录名 |
|---|---|---|---|---|---|---|---|---|
| 上传一个文件后 | 2 | 0 | none | inf | 1 | 1 | 1469 | /shitao/test_quota |
hdfs dfs -put test.csv /shitao/test_quota1/
put: The NameSpace quota (directories and files) of directory /shitao/test_quota is exceeded: quota=2 file count=3
注:
HDFS在设计的时候,将目录本身也包含了,即占用一个配额数,所以设置为2时,其实只能放一个文件或目录。
清除配额限制
hdfs dfsadmin -clrQuota /shitao/test_quota1
再次 put 一个文件
hdfs dfs -put test.csv /shitao/test_quota1/
可以看到put成功了,再次查看配额信息:
hdfs dfs -count -q /shitao/test_quota1
| 状态 | 文件数限额 | 可用文件数 | 空间限额大小(字节) | 可用空间大小(字节) | 目录数 | 文件数 | 总大小 | 文件/目录名 |
|---|---|---|---|---|---|---|---|---|
| 清除配额限制后 | none | inf | none | inf | 1 | 2 | 2575 | /shitao/test_quota |
注:
如果前面两个值为none和inf时,表示没有设置名称配额。
空间配额(Space Quota)
空间配额是目录的空间大小限制。
如果超过这个配额,块写入操作会失败。副本也算配额中的一部分。
空间配额为0的时候,可以创建文件,但是不能向文件中写入内容。
步骤
- 创建一个测试目录
- 生成测试 100MB 大小的文件
- 设置空间配额大小为 200MB
- put 文件测试
- 修改空间配额大小为 385MB
- put 一个文件
- 清除配额限制
- 再次 put 一个文件
创建测试目录
hdfs dfs -mkdir /shitao/test_quota2
生成测试 100MB 大小的文件
dd if=/dev/zero of=./file bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0813538 s, 1.3 GB/s
查看文件大小
du -sh
100M .
设置空间配额大小为 200MB
hdfs dfsadmin -setSpaceQuota 209715200 /shitao/test_quota2
上传文件测试
hdfs dfs -put file /shitao/test_quota2/
返回信息:
put: The DiskSpace quota of /shitao/test_quota2 is exceeded: quota = 209715200 B = 200 MB but diskspace consumed = 402653184 B = 384 MB
注:
其实这个跟HDFS的块大小有关系。
我们环境的HDFS的blocksize(dfs.block.size, dfs.blocksize)大小设置为128MB,副本因子为3。
NameNode 写文件时会分配block倍数的大小,然后检查对应目录的空间配额。
当“目录已经写入的容量+ 当前blocksize*3”与 “目录空间配额” 进行比较,如果前者大于后者,就会报错。
对于我们上面的测试,即0+384MB > 200MB,大于空间配额的设置,所以会失败。
修改空间配额大小为 385MB
hdfs dfsadmin -setSpaceQuota 403701760 /shitao/test_quota2
put 一个文件
hdfs dfs -put file /shitao/test_quota2/
当然我们也可以查看空间配额的信息:
hdfs dfs -count -q /shitao/test_quota2/
| 状态 | 文件数限额 | 可用文件数 | 空间限额大小(字节) | 可用空间大小(字节) | 目录数 | 文件数 | 总大小 | 文件/目录名 |
|---|---|---|---|---|---|---|---|---|
| 清除配额限制后 | none | inf | 403701760 | 89128960 | 1 | 1 | 104857600 | /shitao/test_quota |
再次上传,又会出现错误:
hdfs dfs -put file /shitao/test_quota2/test
返回信息:
put: The DiskSpace quota of /shitao/test_quota2 is exceeded: quota = 403701760 B = 385 MB but diskspace consumed = 717225984 B = 684 MB
清除空间配额
hdfs dfsadmin -clrSpaceQuota /shitao/test_quota2
再次 put 一个文件
hdfs dfs -put file /shitao/test_quota2/test
可以看到,清除空间配额后,再次成功上传上面的文件了。
HDFS 配额教程的更多相关文章
- HDFS配额管理(实战)
概述: Hadoop分布式文件系统(HDFS)允许管理员为使用的名称和单独目录使用的空间数量设置配额.名称配额和空间配额是独立运作的,但这两类配额的管理和实施是密切相关的. Name Quotas: ...
- Hadoop记录-HDFS配额Quota
设置文件数配额 hdfs dfsadmin -setQuota <N> <directory>...<directory> 例如:设置目录下的文件总数为1000个h ...
- HDFS配额管理指南
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_quota_admin_guide.html Hadoop分布式文件系统(HDFS)允许管理员为每个 ...
- HDFS配额查询
### 查看目录配额 hdfs dfs -count -q -h /user/hive/warehouse/db_name.db ### 查看整个HDFS的空间大小 hdfs dfs -df -h / ...
- 分布式文件管理系统HDFS
Hadoop 分布式文件管理系统HDFS可以部署在廉价硬件之上,能够高容错. 可靠地存储海量数据(可以达到TB甚至PB级),它还可以和Yam中的MapReduce 编程模型很好地结合,为应用程序提供高 ...
- Issue 5:Hadoop博客系列转载
Alex 的 Hadoop 菜鸟教程: 第1课 hadoop体系介绍 Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式) Alex 的 ...
- 《OD学hadoop》第四周0716
7.16 一.回顾 二.HDFS Federation(联盟) Hadoop 2.2.0发布新特性 很多的大公司都在使用:BAT HDFS Federation + HDFS HA架构 互相隔开,但是 ...
- 星环大数据安全组件Guardian与hadoop自带的安全组件区别
在进行讲解之前,先带大家学习下hadoop关于hdfs自己的安全如何实现的--------------------------- 名词: ACL-访问控制列表(Access Control List, ...
- 利用 Docker 搭建单机的 Cloudera CDH 以及使用实践
想用 CDH 大礼包,于是先在 Mac 上和 Centos7.4 上分别搞个了单机的测试用.其实操作的流和使用到的命令差不多就一并说了: 首先前往官方下载包: https://www.cloudera ...
随机推荐
- Trie字典树(超详细!!!)
介绍 字典树,也称Trie.字母树,指的是某个字符串集合对应的形如下图的有根树.树的每条边上对应有恰好一个字符,每个顶点代表从根到该节点的路径所对应的字符串(将所有经过的边上的字符按顺序连接起来).有 ...
- LEDE安装zerotier 无法启动解决方法
进入命令行模式,vi /etc/config/zerotier文件,把option enabled '0'的0改为1.
- Android Studio 之 ROM【2】, LiveData+ViewModel+AsyncTask+Repository
改造上一节 ROM[1], 1.利用 LiveData<List<Word>> 与 observe 中的 onChanged 配合,删除掉之前的textView更新函数(upd ...
- [转帖]ORACLE 12C连接时报ORA28040和ORA01017的错误
ORACLE 12C连接时报ORA28040和ORA01017的错误 http://blog.itpub.net/12679300/viewspace-2150667/ 我一直在的处理方式是让更新or ...
- scala基础题--面向对象2
练习2:根据下图实现类.在TestCylinder类中创建Cylinder类的对象,设置圆柱的底面半径和高,并输出圆柱的体积 import scala.beans.BeanProperty objec ...
- docker 的Portainer和Dive
Portainer Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台操作 ...
- BZOJ3926 ZJOI2015诸神眷顾的幻想乡(广义后缀自动机)
对多串建立SAM的一种方法是建trie再对trie建SAM.构造方式分为在线(也即不建trie而是依次插入每个串,或在trie上dfs)和离线(也即建好trie再bfs).其中离线构造与单串的构造方式 ...
- 『正睿OI 2019SC Day6』
动态规划 \(dp\)早就已经是经常用到的算法了,于是老师上课主要都在讲题.今天讲的主要是三类\(dp\):树形\(dp\),计数\(dp\),\(dp\)套\(dp\).其中计数\(dp\)是我很不 ...
- 『正睿OI 2019SC Day1』
概率与期望 总结 老师上午几乎是在讲数学课,没有讲什么和\(OI\)有关的题目,所以我就做了一点笔记. 到了下午,老师讲完了有关知识点和经典模型,就开始讲例题了.前两道例题是以前就做过的,所以没有什么 ...
- 关于暗网需要关闭JS的处理
最近电视剧导致暗网热度很大,执法力度也大了很多,大部分暗网聚集地都不允许开JS权限访问(原因大家都懂,防止钓鱼执法) 因为是英文版而且是火狐,所以简单记录下,以防小白蛋疼 再打开就可以了 Tor协议 ...