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 ...
随机推荐
- ssl证书转换cer转pem
.pem证书转.cer证书 openssl x509 -outform der -in demo.pem -out demo.cer .cer证书转.pem证书 openssl x509 -infor ...
- vue添加背景音乐
vue添加背景音乐需要用到HTML中的标签 参考手册:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp *在iOS端autopl ...
- Redis读写分离技术解析
背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量.这种架构读写请求都在master上完成, ...
- Windows10 下 JAVA JDK版本设置修改操作
一般情况下,先修改系统环境变量,右键点击桌面上的“此电脑”图标中,选择“属性”,在弹出的属性窗口中选择“高级系统设置”,然后点击“环境变量” 在弹出窗口中的“系统变量”,查到“JAVA_HOM ...
- python 散点图上给每个点打标签方便看到数据
import numpy as np import matplotlib.pyplot as plt x=[2.3,4.5,3,7,6.5,4,5.3] y=[5,4,7,5,5.3,5.5,6.2] ...
- linux下安装谷歌拼音输入法
linux下安装谷歌拼音输入法 输入以下命令,等待安装完成. sudo apt-get install fcitx 接着输入,完成安装谷歌中文输入法 sudo apt-get install fcit ...
- Java8 新特性 默认方法
默认方法为什么出现 默认方法的出现是因为在java8设计的过程中,因为加入了Lamdba表达式,和函数式接口,所以在非常多的接口里面要加入新的方法,但是如果在接口里面直接加入新的方法,那么以前写的所有 ...
- Linux手动安装新版本Python教程(CentOS)
一.说明 1.1 linux为什么不升级python版本 2008年python3就发布了,到2020年1月1日python2.7就停止更新了,为什么主流的linux迟迟不去除python2自带pyt ...
- Element 表单验证,不清空数据,仅仅取消表单字段校验
重置表单 this.$refs['ageForm'].resetFields() // 表单重置 仅清空校验 this.$refs['ageForm'].clearValidate() // 清除验证
- JQuery的使用案例(二级联动,隔行换色,轮播图,广告插入)
JQuery的使用案例 (一)利用JQuery完成省市二级联动 第一步:确定事件(change事件),在绑定的函数里面获取用户选择的省份 第二步:创建二维数组来存储省份和城市 第三步:遍历二维数组中的 ...