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 ...
随机推荐
- Set学习笔记
今天又去看了一下STL里的set,来这里水一下博客 What is set? set的本质是一种功能受限的平衡树,不支持重复数字,也就是说如果插入一大堆数字12,输出它的长度还是1 如何定义 定义 s ...
- PATA1025PAT Ranking
需要注意的就是sort函数的应用,还有自己比较函数cmp的编写 在一个就是结构体的设计,排序时的考室内的排序,数组下标的处理 参考代码: #define _CRT_SECURE_NO_WARNINGS ...
- pytest 打印调试信息
pytest_lean2.py #coding=utf- import pytest import os import sys import time import json sys.path.app ...
- python 文件读写模式区别,以及如何边写入边保存flush()
如表: 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 否, ...
- LEDE安装zerotier 无法启动解决方法
进入命令行模式,vi /etc/config/zerotier文件,把option enabled '0'的0改为1.
- Guava 源码分析之Cache的实现原理
Guava 源码分析之Cache的实现原理 前言 Google 出的 Guava 是 Java 核心增强的库,应用非常广泛. 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Goog ...
- [HeadFrist-HTMLCSS学习笔记]第七、八章
[HeadFrist-HTMLCSS学习笔记]第七章CSS入门:加一点样式 重点噻 段落添加背景颜色 p{ background-color: red; } 文本颜色 p{ color: ,maroo ...
- 【IntelliJ IDEA学习之五】IntelliJ IDEA 搭建项目
版本:IntelliJIDEA2018.1.4 一.同一窗口展示多个应用(弊端:耗内存) idea没有eclipse workspace的概念,如果想在同一窗口显示多个应用,可以按照如下方式来做:1. ...
- linux系统命令别名,打造属于自己的个性linux系统
linux操作系统,个性化快捷命令,让你的系统更懂你,让你的操作更快捷. 在你使用linux操作系统的时候,有时候输入命令过长的话会显得很麻烦,这个时候,linux操作系统支持的命令别名很大程度上解决 ...
- Effective.Java第56-66条(规范相关)
56. 为所有已公开的API元素编写文档注释 要正确地记录API,必须在每个导出的类.接口.构造方法.方法和属性声明之前加上文档注释.如果一个类是可序列化的,还需要记录它的序列化形式. 文档注释在源 ...