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 ...
随机推荐
- 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
六.(本题10分) 设 $A$ 为 $n$ 阶实对称阵, 证明: $A$ 有 $n$ 个不同的特征值当且仅当对 $A$ 的任一特征值 $\lambda_0$ 及对应的特征向量 $\alpha$, 矩 ...
- C语言博客作业4——数组
0.展示PTA总分 一维数组 二维数组 字符数组 1.本章学习总结 1.1学习内容总结 一维数组知识点: 无论是对一维数组还是二维数组进行应用时,我们对其下标的应用十分广泛. 1:一维数组的输入和遍历 ...
- Spring Security教程(四)
在前面三个博客的例子中,登陆页面都是用的Spring Security自己提供的,这明显不符合实际开发场景,同时也没有退出和注销按钮,因此在每次测试的时候都要通过关闭浏览器来注销达到清除session ...
- 【07月01日】A股滚动市净率PB历史新低排名
2010年01月01日 到 2019年07月01日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年07月01日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...
- idea导入工程
idea导入svn中的工程,一般是多模块的工程. 1 在idea中导入一个工程的目录,可以建立对应的文件夹 dy-task ,svn选择对应的分支导入 2 在dy-task同目录下建立其他目录 dy- ...
- mongodb compass 启动报错()
报错: 原因:由于直接关闭客户端,进程没关导致下次开启时,后台还是运行的所以无法重新开启 解决办法: 1.查看进程 tasklist | findstr “MongoDBCompass.exe” 2. ...
- Win 10卡顿怎么办?解决win10卡顿的方法大汇总
最近微软开始向Windows 10用户推送创造者更新(Creators Update),相信也有很多小伙伴已经尝鲜了这一最新的版本.而对于win10的使用体验,很多小伙伴第一个抱怨的问题便是win10 ...
- linux中awk工具的使用(转)
add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...
- java中什么是包
一.什么是包 包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件 包有助于避免命名冲突.在使用许多类时,类和方法的名称很难决定.有时需要使用与其他类相同的名称.包基本上隐藏了类并 ...
- linux或者shell进入vi命令
vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi file 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(comman ...