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 ...
随机推荐
- MQ异步同步搜索引擎ElasticSearch数据踩坑
业务背景 在大型网站中,为了减少DB压力.让数据更精准.速度更快,将读拆分出来采用搜索引擎来为DB分担读的压力,ElasticSearch就是目前市面上比较流行的搜索引擎,他的检索速度奇快.支持各种复 ...
- cocos:C++ 导出到lua, genbindings.py修改
cocos:C++ 导出到lua, genbindings.py修改 1. 准备 把tools目录下的cocos2dx_extension.ini, genbindings.py, userconf. ...
- SpringMVC拦截器与SpringBoot自定义拦截器
首先我们先回顾一下传统拦截器的写法: 第一步创建一个类实现HandlerInterceptor接口,重写接口的方法. 第二步在XML中进行如下配置,就可以实现自定义拦截器了 SpringBoot实现自 ...
- leetcode 13. Integer to Roman
使用eval,特别处理6个case var romanToInt = function (s) { const map = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C ...
- Docker 一步搞定 ZooKeeper 集群的搭建
Docker 一步搞定 ZooKeeper 集群的搭建 背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 ...
- SQL Server创建、更改和删除架构
SQL Server创建架构 学习如何使用SQL Server CREATE SCHEMA在当前数据库中创建新架构. SQL Server中的架构是什么 架构是包括表,视图,触发器,存储过程,索引等在 ...
- Zookeeper的介绍与基本部署
目录 简介 架构 安装 StandAlone模式 1. 安装 2. 修改配置 3. 启动 4. 验证 5. 基本用法 Distributed模式 1. 配置hosts 2. 配置zoo.cfg 3. ...
- Java 在 Word 文档中使用新文本替换指定文本
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...
- FPGA控制RGMII接口PHY芯片基础
一.前言 网络通信中的PHY芯片接口种类有很多,之前接触过GMII接口的PHY芯片RTL8211EG.但GMII接口数量较多,本文使用RGMII接口的88E1512搭建网络通信系统.这类接口总线位宽小 ...
- Java学习:Set接口与HashSet集合存储数据的结构(哈希表)
Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...