HDFS Quotas Guide

Overview

HDFS允许管理员为多个每个目录设置使用的命名空间和空间的配额。命名空间配额和空间配额独立操作,但是这两种类型的配额的管理和实现非常类似。

Name Quotas

命名空间配额是一个目录树中该目录下的文件和子目录数量的硬限制。如果超出配额,文件和目录会创建失败。配额会与重命名的目录保持联系。如果重命名操作导致违反配额限制,操作将会失败。为目录设置新的配额时,即使现在的目录状态违反新的配额限制,操作仍然成功。一个新创建的目录没有配额限制。配额的最大值是Long.Max_Value。一个目录的配额会强制一个目录保持空。(是的,一个目录会占用自己的配额)

配额在FsImage中被持久化。当集群启动时,如果fsimage中有违反配额的目录(可能是FsImage文件被偷偷地修改了),将会打印出一个warning。设置或者移除配额配置会创建日志条目。

Space Quotas

空间配额是关于目录树上一个子目录数下的文件大小的硬限制。如果一个目录所剩的配额不够一个Block的大小,Block申请失败。每一个Block的副本都会计算到配额中。配额会与重命名的目录保持联系,如果重命名操作导致违反配额限制,操作将会失败。一个新创建的目录不被分配配额。最大的配额值时Long.Max_Value。配额为0仍然允许文件被创建,但是这个文件不会有Block。目录不使用主机文件系统空间,不计算在空间配额中。(空间配额----Block)。改变一个文件的副本因子将会归还或者占用配额。

配额在FsImage中被持久化。当集群启动时,如果fsimage中有违反配额的目录(可能是FsImage文件被偷偷地修改了),将会打印出一个warning。设置或者移除配额配置会创建日志条目。

Administrative Commands

配额通过下面的命令管理,只对管理员可用:

1.      dfsadmin -setQuota <N><directory>...<directory>

设置一个或多个目录的命名空间配额为N。如果N不是一个正整数,这个目录不存在或者这个路径是个文件,或者目录将立即超出新的配额时会抛出错误报告。

2.      dfsadmin -clrQuota<directory>...<directory>

移除目录列表中目录的所有命名空间配额。如果目录不存在或者路径是一个文件,将会抛出错误。如果目录没有配额的话不会抛出错误。

3.      dfsadmin-setSpaceQuota <N> <directory>...<directory>

设置目录列表中的每个目录的空间配额为N,单位bytes。这是对此目录下的整个字目录树的文件大小总和的硬限制。空间配额也会考虑副本等的信息,拥有3个副本的1GB的数据会消耗3GB的配额。为了方便,N也可以用一个二进制前缀指定。例如,50g用50 gigabytes表示,2t用2terabytes表示等等。如果N既不是0也不是正整数或者目录不存在或者路径是个文件或者目录将立即超出配额,会抛出错误信息。

4.      dfsadmin-clrSpaceQuota <directory>...<director>

移除目录列表中每一个目录的空间配额。如果目录不存在或者路径是个文件,将会抛出错误。如果目录没有配额不会抛出错误。

Reporting Command

一个HDFS shell 计数命令的扩展,这个命令报考配额的值和当前使用的命名空间配额和空间配额。

fs -count -q <directory>...<directory>

使用-q选项,报告目录列表中每个目录的命名空间配额值,可用的命名空间剩余,空间配额值,可用的空间配额剩余。如果目录没有设置配额,报告的值时none和inf。

hdfs的文件个数 HDFS Quotas Guide的更多相关文章

  1. HDFS写文件过程分析

    转自http://shiyanjun.cn/archives/942.html HDFS是一个分布式文件系统,在HDFS上写文件的过程与我们平时使用的单机文件系统非常不同,从宏观上来看,在HDFS文件 ...

  2. Hadoop HDFS分布式文件系统设计要点与架构

      Hadoop HDFS分布式文件系统设计要点与架构     Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...

  3. Spark1.4从HDFS读取文件运行Java语言WordCounts

    Hadoop:2.4.0 Spark:1.4.0 Ubuntu 14.0 1.首先启动Hadoop的HDFS系统.     HADOOP_HOME/sbin/start-dfs.sh 2.在Linux ...

  4. Spark1.4从HDFS读取文件运行Java语言WordCounts并将结果保存至HDFS

    本次实验相关信息如下: 操作系统:Ubuntu 14 Hadoop版本:2.4.0 Spark版本:1.4.0 运行前提是Hadoop与Spark均已正确安装配置 2.在Linux中生成一个文件tes ...

  5. hadoop HDFS常用文件操作命令

    命令基本格式: hadoop fs -cmd < args > 1. ls 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls /dir hadoop fs -ls -R ...

  6. Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)

    Apache-->hadoop的官网文档命令学习:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html FS Shell 调用文件系统( ...

  7. Hadoop HDFS分布式文件系统设计要点与架构(转摘)

    Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Ha ...

  8. HDFS常用文件操作

    put 上传文件    hadoop fs -put wordcount.txt   /data/wordcount/ text 查看文件内容   hadoop fs -text /output/wo ...

  9. 解决HDFS小文件带来的计算问题

    hive优化 一.小文件简述 1.1. HDFS上什么是小文件? HDFS存储文件时的最小单元叫做Block,Hadoop1.x时期Block大小为64MB,Hadoop2.x时期Block大小为12 ...

随机推荐

  1. Beta冲刺(2/7)——2019.5.24

    作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Beta冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 队员学号 队 ...

  2. AKKA Router路由

    路由概念 大量的actor在并行工作的时候,处理到来的消息流,这时候就需要一个组件或者东西来引导消息从源到目的地Actor,这个组件或者东西就是Router在Akka中,router也是一种actor ...

  3. [转帖]为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用

    为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用 原创Clement-Xu 发布于2015-07-17 15:53:14 阅读数 57066  收藏 展开 HiKariCP是 ...

  4. AntDesign vue学习笔记(三)嵌套路由使用

    本项目目前结构如下 1.Login页面=>MainFrm页面=>MainFrm左部菜单,右边是显示区域可以切换子页面. 2.当点击左部菜单时,右边的子页面随着进行切换. 实现关键代码如下1 ...

  5. Background Suppression Network for Weakly-supervised Temporal Action Localization [Paper Reading]

    研究内容:弱监督时域动作定位 结果:Thumos14 mAP0.5 = 27.0 ActivityNet1.3 mAP0.5 = 34.5 从结果可以看出弱监督这种瞎猜的方式可以PK掉早些时候的一些全 ...

  6. 用LabVIEW实现《家国梦》游戏中自动收货收金币

    前几周,很流行一个手机游戏,叫<家国梦>.我在手机上玩了一两天后,发现了两个问题: 1. 收货收金币太没意思,只需要手指滑在固定的路线,一会儿就烦了 2. 怎么追赶也追不上手快的人(当然也 ...

  7. thymeleaf是用于编写html模版的编程语言(工具语言)

    一.编程语言 用于编写html模版的编程语言. thymeleaf一种命令式和声名式混合的寄生语言. html与thymeleaf的结合是dsl与命令式语言的结合. html与thymeleaf的结合 ...

  8. Python开发【第十五篇】模块的导入

    的导入语句 import 语句 语法: import 模块名1 [as 模块别名] 作用: 将某模块整体导入到当前模块 示例: import math import sys,os 用法: 模块名.属性 ...

  9. RabbitMQ学习之Publish/Subscribe(3)

    上一个教程中,我们创建了一个work queue. 其中的每个task都会被精确的传送到一个worker. 这节,我们将会讲把一个message传送到多个consumers. 这种模式叫做publis ...

  10. VMwarm下安装ubuntu的一些问题

    1.终端无法输入中文的原因(未实践)  原文地址 2.Windows10下VMwarm(V15.5)和ubuntu14.04实现复制文件(已经实践)  转载路径