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. 第五节:管道中间件入门(Use、Run、Map)

    一. 简介 1.中间件是一种装配到应用管道以处理请求和响应的组件,每个组件可以选择是否把请求传递到管道中的下一个组件.可在管道中的下一个组件的前后执行工作.请求管道中的每一个组件负责调用管道中的下一个 ...

  2. JAVA WEB项目目录结构以及web应用部署的根目录,编译路径和项目根目录的区别

    本文链接:https://blog.csdn.net/l00149133/article/details/78984083 web应用部署的根目录,编译路径和项目的根目录有什么区别? 直接上例子: 你 ...

  3. day60——单表操作补充(批量插入、查询、表结构)

    day60 批量插入(bulk_create) # bulk_create obj_list = [] for i in range(20): obj = models.Book( title=f'金 ...

  4. vs2019发布Web到云服务器(IIS)

    捣鼓了也有几天,到处收集资料终于折腾出来,做点小笔记 原文地址:https://www.cnblogs.com/potential/p/3751426.html 一.我的环境: Windows Ser ...

  5. .Net Core3.0使用gRPC 和IdentityServer4

    gRPC是什么gRPC是可以在任何环境中运行的现代开源高性能RPC框架.它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证.它也适用于分布式计 ...

  6. LOJ2874 JOISC2014 历史研究 分块、莫队

    传送门 看到出现次数自然地考虑莫队. 但是发现如果需要删除并动态维护答案的话,则要用一个堆来维护答案,增加了一个\(log\).但是加入操作却没有这个\(log\),所以我们考虑避免删除操作. 分块, ...

  7. eclipse的debug模式的F5,F6按键失灵

    在使用eclipse Mars.1 Release (4.5.1)开发过程中,发现debug模式下的快捷键无法使用,全部失效了.秉持坚决自己解决绝不求人的态度我艰苦的在度娘上寻求解决办法,有的说是快捷 ...

  8. JS获取当前时间戳及时间戳的转换

    获取现在的Unix时间戳(Unix timestamp) Math.round(new Date().getTime()/1000)  //getTime()返回数值的单位是毫秒 Unix时间戳(Un ...

  9. mongodb数据库怎么迁移备份?

    1.先进入到mongodb目录的bin目录下,Linux windos是一样   image.png 2.集合备份和恢复 使用mongo自带命令来迁移数据,思路是先导出集合数据再导入到数据库中 导出命 ...

  10. springboot maven项目转gradle的完整方法

    1.maven转gradle的方法:在项目根目录下,使用命令行工具,输入如下内容: gradle init --type.pom 2.springboot项目的 build.gradle内容示例如下( ...