本文原始地址:https://sitoi.cn/posts/12544.html

名称配额(Name Quota)

名称配额是在对应的目录下所有文件和目录名称的数量上的限制。

当超过这个配额的时候,文件或目录就会创建失败,重命名后名称配额仍然有效

步骤

  1. 创建一个测试目录
  2. 设置创建的目录的名称配额
  3. 查看目录的配额信息
  4. put 文件进行名称配额测试
  5. 清除配额限制
  6. 再次 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的时候,可以创建文件,但是不能向文件中写入内容。

步骤

  1. 创建一个测试目录
  2. 生成测试 100MB 大小的文件
  3. 设置空间配额大小为 200MB
  4. put 文件测试
  5. 修改空间配额大小为 385MB
  6. put 一个文件
  7. 清除配额限制
  8. 再次 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 配额教程的更多相关文章

  1. HDFS配额管理(实战)

    概述: Hadoop分布式文件系统(HDFS)允许管理员为使用的名称和单独目录使用的空间数量设置配额.名称配额和空间配额是独立运作的,但这两类配额的管理和实施是密切相关的. Name Quotas: ...

  2. Hadoop记录-HDFS配额Quota

    设置文件数配额 hdfs dfsadmin -setQuota <N> <directory>...<directory> 例如:设置目录下的文件总数为1000个h ...

  3. HDFS配额管理指南

    原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_quota_admin_guide.html Hadoop分布式文件系统(HDFS)允许管理员为每个 ...

  4. HDFS配额查询

    ### 查看目录配额 hdfs dfs -count -q -h /user/hive/warehouse/db_name.db ### 查看整个HDFS的空间大小 hdfs dfs -df -h / ...

  5. 分布式文件管理系统HDFS

    Hadoop 分布式文件管理系统HDFS可以部署在廉价硬件之上,能够高容错. 可靠地存储海量数据(可以达到TB甚至PB级),它还可以和Yam中的MapReduce 编程模型很好地结合,为应用程序提供高 ...

  6. Issue 5:Hadoop博客系列转载

    Alex 的 Hadoop 菜鸟教程: 第1课 hadoop体系介绍 Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式) Alex 的 ...

  7. 《OD学hadoop》第四周0716

    7.16 一.回顾 二.HDFS Federation(联盟) Hadoop 2.2.0发布新特性 很多的大公司都在使用:BAT HDFS Federation + HDFS HA架构 互相隔开,但是 ...

  8. 星环大数据安全组件Guardian与hadoop自带的安全组件区别

    在进行讲解之前,先带大家学习下hadoop关于hdfs自己的安全如何实现的--------------------------- 名词: ACL-访问控制列表(Access Control List, ...

  9. 利用 Docker 搭建单机的 Cloudera CDH 以及使用实践

    想用 CDH 大礼包,于是先在 Mac 上和 Centos7.4 上分别搞个了单机的测试用.其实操作的流和使用到的命令差不多就一并说了: 首先前往官方下载包: https://www.cloudera ...

随机推荐

  1. hdu 6620 Just an Old Puzzle(N数码问题)

    http://acm.hdu.edu.cn/showproblem.php?pid=6620 N数码问题: n*n矩阵,里面填着1—n*n-1,还有1个空格, 通过上下左右移动空格的位置, 使矩阵里的 ...

  2. 【Codeforces】B. Div Times Mod

    B. Div Times Mod time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  3. 记C# 调用虹软人脸识别 那些坑

    上一个东家是从事安防行业的,致力于人工智能领域,有自主人脸识别.步态识别的算法.C++同事比较称职有什么问题都可以第一时间反馈,并得到合理的处理,封装的DLL 是基于更高性能的GPU算法,可支持更多线 ...

  4. [原创]Emmagee V2.4工具使用介绍

    [原创]Emmagee V2.4工具使用介绍 1 Emmagee 介绍 Emmagee 是网易杭州研究院 QA团队开发的一款简单易上手的Android性能监控App,主要用于监控单个App的CPU.内 ...

  5. Gamma阶段第九次scrum meeting

    每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...

  6. MySQL一主二从复制环境切换主从库

    假设有一个一主二从的环境,当主库M出现故障时,需要将其中一个从库S1切换为主库,同时将S2指向新的主库S1,如果可能,需要将故障的主库M修复并重置为新的从库. 搭建一主二从复制环境可参考:mysql5 ...

  7. 打印出三位数的水仙花数Python

    水仙花数计算 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪ ...

  8. ML学习笔记之Jupyter Notebook各种使用方法

    0x00 概述 Jupyter Notebook安装的官方网站 安装Jupyter Notebook的先决条件:已经安装了python(python 2.7 或者是python3) 具体的安装方法: ...

  9. jsGrid使用入门

    jsGrid使用入门 原创蓝天上的一朵云 本文链接:https://blog.csdn.net/u012846041/article/details/82735811 jsGrid资源地址: http ...

  10. 分布式系统根基:物理时钟和Lamport逻辑时钟

    分布式系统解决了传统单体架构的单点问题和性能容量问题,另一方面也带来了很多的问题,其中一个问题就是多节点的时间同步问题:不同机器上的物理时钟难以同步,导致无法区分在分布式系统中多个节点的事件时序.19 ...