概述:

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

Name Quotas:

名称配额对根目录下的树的文件和目录的数量进行严格的限制。

如果超出配额,文件和目录创建失败。配额不变

对于重命名的目录;如果操作将导致配额冲突,则重命名操作失败。

即使目录违反了新的配额,设置配额的操作仍然会成功。新创建的目录没有相关的配额。最大的配额是Long.Max_Value。一个命令的配额会使目录保持空。(是的,一个目录对它自己的配额有影响!)
配额限制制与fsimage永久生效的。当开始时,如果fsimage违反了配额,就会对此类违规行为进行警告。(对于一开始设置配额的时候目录下文件个数已经超过了设置的个数,则对此类操作进行告警,操作动作不会失败)

设置或删除一个配额都会创建日志目录

操作:

设置目录的配额空间,让目录下存储的文件不超过N 个

  • hdfs dfsadmin -setQuota <N> <directory>...<directory>
  • Set the name quota to be N for each directory. Best effort for each directory, with faults reported if N is not a positive long integer, the directory does not exist or it is a file, or the directory would immediately exceed the new quota.

  • 设置每个目录的名称配额为N个。对于受影响每个目录。如果N不是一个正整数,如果目录不存在,或者是一个文件,或者目录将立即超过新的配额。

       清除目录的配额空间

  • hdfs dfsadmin -clrQuota <directory>...<directory>

    Remove any name quota for each directory. Best effort for each directory, with faults reported if the directory does not exist or it is a file. It is not a fault if the directory has no quota.

Space Quotas

空间配额对于根目录下的树中的文件所使用的字节数是一个严格的限制。

如果配额不允许写入一个完整的块,块分配就会失败。一个块的每个副本都与配额相对应。

对于重命名的目录,配额不变

如果重命名操与设置的配额冲突,则重命名操作失败。

新创建的目录没有相关的配额。

配额的最大值是Long.Max_Value。

配额为零的情况下仍然允许创建文件,但不能往文件中写东西。

创建目录不使用主机文件系统空间,也不要计算空间配额。

用于保存文件元数据的主机文件系统空间不被计算在配额内。

对文件的预期复制因子收取配额;更改一个文件的复制份数将会导致信用卡或借方配额。(配额考虑到了复制,当1个文件是1G,复制是3份,设置配额是2G 则上传报错)

配额现在制与fsimage是持久的。当开始时,如果fsimage立即违反了配额,就会对此类违规行为进行警告。设置或删除一个配额会创建一个日志条目。(对于一开始设置配额的时候目录下配额空间已经超过了设置的空间,则对此类操作进行告警,操作动作不会失败)

操作:

设置目录的存储空间配额

  • hdfs dfsadmin -setSpaceQuota <N> <directory>...<directory>

    Set the space quota to be N bytes for each directory. This is a hard limit on total size of all the files under the directory tree. The space quota takes replication also into account, i.e. one GB of data with replication of 3 consumes 3GB of quota. N can also be specified with a binary prefix for convenience, for e.g. 50g for 50 gigabytes and 2t for 2 terabytes etc. Best effort for each directory, with faults reported if N is neither zero nor a positive integer, the directory does not exist or it is a file, or the directory would immediately exceed the new quota.

  • 设置每个目录的空间配额为N个字节。这是对目录树下所有文件的总大小的严格限制。空间配额也考虑到复制,即1 GB的数据复制3消耗3GB的配额。N也可以用一个二进制前缀指定为方便起见,如50 g为50 g,2 t 2 tb等。尽最大努力为每个目录,与缺陷报告如果N是零和一个正整数,目录不存在或它是一个文件,或者目录会立即超过新配额。
  • 清除目录的存储空间配额命令
  • hdfs dfsadmin -clrSpaceQuota <directory>...<director>

    Remove any space quota for each directory. Best effort for each directory, with faults reported if the directory does not exist or it is a file. It is not a fault if the directory has no quota.

  • 移除每个目录的空间配额。对于每个有效的目录,如果目录不存在或它是一个文件,就会报告设置错误。对应目录来说没有配额不会报错。

测试一,配额文件和目录限制:

设置目录的文件+目录总数不超过3,(这里不包含3 应该是总数是2)

-查看当前情况

hz目录下有1个文件 2.txt

执行  hdfs dfsadmin -setQuota 3 /user/hz

创建目录a --成功

创建目录b--失败(报超出配额限制,可见参数是小于不包含)

查询目录下文件数 是2个

尝试上传一个文件(继续报错,配额超出)

对于已经有2个文件,修改配额为1 则不报错

清除配额,上传文件成功

测试二,配额空间限制:

查看当前的空间大小

说明当前空间配额最小为 17*3=51字节

当设置配额小于 目前已经有的大小时,则会从其他地方借用,显示为-

设置配额为50,命令执行成功

在此情况下 无法在继续传文件

创建一个32字节的文件 测试是否副本占用配额信息

上传文件,32+17=49

测试结果报错,超出了配额限制

重新设置配额为60

查询当前配额剩余  =9

计算为 60-17*3副本=9

总结:对于空间限制,配额空间是计算副本数的

测试 创建目录是否占用配额空间

HDFS配额管理(实战)的更多相关文章

  1. HDFS配额管理指南

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

  2. linux磁盘管理系列一:磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  3. 第二章· Redis管理实战

    数据类型 管理实战 数据类型 String: 字符串类型 Hash: 哈希类型 List: 列表类型 Set: 集合类型 Sorted set: 顺序集合类型 管理实战 通用操作

  4. CentOS6.8逻辑卷管理实战

    CentOS6.8逻辑卷管理实战 要求:利用现有的四块磁盘,创建一个有两个PV组成的大小为80G的名为testvg的VG:要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv:挂载 ...

  5. 《SQLSERVER2012实施与管理实战指南》前4章节笔记内容

    <SQLSERVER2012实施与管理实战指南>前4章节笔记内容 <SQLSERVER2012实施与管理实战指南>的前面4章是<SQLSERVER企业级平台管理实践> ...

  6. 搞懂分布式技术5:Zookeeper的配置与集群管理实战

    搞懂分布式技术5:Zookeeper的配置与集群管理实战 4.1 配置文件 ZooKeeper安装好之后,在安装目录的conf文件夹下可以找到一个名为“zoo_sample.cfg”的文件,是ZooK ...

  7. openstack nova 基础知识——Quota(配额管理)

    一.什么是配额(quota)管理 简单的讲就是控制用户资源的数量.在openstack里,管理员为每一个工程(project)分配的资源都是有一定限制的,这些资源包括实例(instance).cpu. ...

  8. SpringBoot与Shiro整合权限管理实战

    SpringBoot与Shiro整合权限管理实战 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] *观看本文章需要有一定SpringBoot整合经验* Shiro框架简介 Apach ...

  9. quota - linux磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

随机推荐

  1. eclipse快捷注释生成方法

    自动生成方法的注释格式,例如 /*** @param str* @return* @throws ParseException*/ 快捷键是alt+shift+j,将光标放在方法名上,按快捷键.会生成 ...

  2. 测试任务汇总v1.0

    2017.08.04 整理了目前我们所在团队需要做的日常任务 定义为v1.0

  3. struts 中的创建Action的三种方法

    1.对于直接创建类,不实现接口和继承任何的类 例如创建一个helloAction package cn.lonecloud.control; import com.opensymphony.xwork ...

  4. HDU - 3567 IDA* + 曼哈顿距离 + 康托 [kuangbin带你飞]专题二

    这题难度颇大啊,TLE一天了,测试数据组数太多了.双向广度优先搜索不能得到字典序最小的,一直WA. 思路:利用IDA*算法,当前状态到达目标状态的可能最小步数就是曼哈顿距离,用于搜索中的剪枝.下次搜索 ...

  5. 生活常用类API调用的代码示例合集:邮编查询、今日热门新闻查询、区号查询等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 邮编查询:通过邮编查询地名:通过地名查询邮编 今日热门新闻查询:提 ...

  6. java读取数据写入txt文件并将读取txt文件写入另外一个表

    package com.xsw.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...

  7. 使用TensorFlow的卷积神经网络识别自己的单个手写数字,填坑总结

    折腾了几天,爬了大大小小若干的坑,特记录如下.代码在最后面. 环境: Python3.6.4 + TensorFlow 1.5.1 + Win7 64位 + I5 3570 CPU 方法: 先用MNI ...

  8. 视频显示格式720p

    720p是一种视频显示格式.字母p意为逐行扫描(progressive scan),数字720则表示水平方向有720条扫描线. 通常720p的画面分辨率为1280×720,一般亦可称为高画质(HD). ...

  9. Srtuts2实现登录界面(不连接数据库)报错(二)

    二月 28, 2014 11:37:29 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...

  10. freemarker嵌入文件输出结果

    freemarker嵌入文件输出结果 1.嵌入的文件代码 inc.ftl: <#assign username="李思思"> 2.父文件代码 inner.ftl: &l ...