8. HDFS快照与配额

本文介绍HDFS中的快照功能,包括快照的创建、重命名、删除及使用快照恢复数据的方法。同时讲解如何设置目录和空间配额,并提供实际操作指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验环境

hadoop版本:3.2.4

快照

HDFS快照(snapshot)是对文件系统子树在给定时刻的一个只读副本。由于并不真正复制数据,因此快照非常高效,它们简单的记录每个文件的元数据和块列表,这对于重构快照时刻的文件系统内容已经足够了,快照一般用于数据备份。

在HDFS中快照功能默认关闭。

  1. 开启快照

    [root@hadoop1 ~]# hdfs dfs -ls /test    #test为实验目录
    Found 2 items
    -rw-r--r--   3 root supergroup         12 2024-10-16 02:59 /test/a.txt
    drwxr-xr-x   - root supergroup          0 2024-10-16 03:00 /test/tmp
    
    [root@hadoop1 ~]# hdfs dfsadmin -allowSnapshot /test
    Allowing snapshot on /test succeeded
    
  2. 创建快照

    [root@hadoop1 ~]# hdfs dfs -createSnapshot /test snap
    Created snapshot /test/.snapshot/snap
    
    # 快照创建后会在test/.snapshot/snap下创建一个与test一样的目录结构
    [root@hadoop1 ~]#  hdfs dfs -ls -R  /test/.snapshot/snap
    -rw-r--r--   3 root supergroup         12 2024-10-16 02:59 /test/.snapshot/snap/a.txt
    drwxr-xr-x   - root supergroup          0 2024-10-16 03:00 /test/.snapshot/snap/tmp
    
  3. 重命名快照

    [root@hadoop1 ~]# hdfs dfs -renameSnapshot /test snap snap_1
    # 重命名后,快照目录也会被修改
    [root@hadoop1 ~]# hdfs dfs -ls /test/.snapshot
    Found 1 items
    drwxr-xr-x   - root supergroup          0 2024-10-16 03:02 /test/.snapshot/snap_1
    
  4. 比较快照与目录的不同

    [root@hadoop1 ~]# hdfs snapshotDiff /test . snap_1   # test目录与其快照比较
    Difference between current directory and snapshot snap_1 under directory /test:
    
    
  5. 列出当前用户的所有快照

    [root@hadoop1 ~]# hdfs lsSnapshottableDir
    drwxr-xr-x 0 root supergroup 0 2024-10-16 03:02 1 65536 /test
    
  6. 使用快照恢复文件

    #删除test目录下的文件
    [root@hadoop1 ~]#  hdfs dfs -rmr /test/*
    rmr: DEPRECATED: Please use '-rm -r' instead.
    Deleted /test/a.txt
    Deleted /test/tmp
    
    # 从快照目录下恢复
    [root@hadoop1 ~]# hdfs dfs -cp /test/.snapshot/snap_1/* /test
    
    [root@hadoop1 ~]# hdfs dfs -ls -R /test
    -rw-r--r--   3 root supergroup         12 2024-10-16 03:12 /test/a.txt
    drwxr-xr-x   - root supergroup          0 2024-10-16 03:12 /test/tmp
    
  7. 删除快照

    [root@hadoop1 ~]# hdfs dfs -deleteSnapshot /test snap_1
    

配额

HDFS配额(quota)指对HDFS文件和目录的储存限制,就是管理员可以为用户所能使用的空间进行配额限制。比如最大只能使用2G等,HDFS配额分为命名配额和空间配额。

目录配额:控制的目录所有文件/目录的个数,设置的数值N表示可以存放N - 1个子文件/目录。

  • 设置命名配额

    [root@hadoop1 hadoop-3.2.4]# hdfs dfs -mkdir /quota   #新建/quota目录
    [root@hadoop1 hadoop-3.2.4]# hdfs dfsadmin -setQuota 1 /quota  # 设置quota目录配额为1,即该目录不能创建子目录和子文件。
    [root@hadoop1 hadoop-3.2.4]# hdfs dfs -mkdir /quota/1
    mkdir: The NameSpace quota (directories and files) of directory /quota is exceeded: quota=1 file count=2
    
  • 清除命名配额

    [root@hadoop1 hadoop-3.2.4]# hdfs dfsadmin -clrQuota /quota
    

空间配额:控制目录的总大小。

  • 设置空间配额

    [root@hadoop1 hadoop-3.2.4]# hdfs dfs -mkdir /space_quota #新建目录space_quota
    [root@hadoop1 hadoop-3.2.4]# hdfs dfsadmin -setSpaceQuota 128m /space_quota  #设置space_quota空间配额为128M
    [root@hadoop1 hadoop-3.2.4]# ls -lh file.txt
    -rw-r--r--. 1 root root 130M Oct 15 23:01 file.txt
    [root@hadoop1 ~]# hdfs dfs -put file.txt  /space_quota  #上传文件大于配额大小
    put: The DiskSpace quota of /space_quota is exceeded: quota = 134217728 B = 128 MB but diskspace consumed = 402653184 B = 384 MB
    
  • 清除空间配额

    [root@hadoop1 hadoop-3.2.4]# hdfs dfsadmin -clrSpaceQuota /space_quota
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值