HDFS(七)—— HDFS 的高级功能

HDFS 的高级功能主要包括:

  1. 回收站:便于找到误删的数据。
  2. 快照:对数据的备份。
  3. 配额:限制目录中文件的数量和大小。

一、回收站(trash)

  • 默认回收站是关闭的,可以通过在 core-site.xml 中添加 fs.trash.interval 来打开配置时间阀值,例如:

    <property>
    	<!-- 单位:分钟 -->
       <name>fs.trash.interval</name>
       <value>1440</value>
    </property>
    
  • 删除的文件其实是被 ctrl + x 移动到了一个隐藏目录 .Trash,本质上就是一个 mv 命令。

  • 上面的配置表示,删除之后放到回收站里的文件存放时间超过 1440 分钟将被彻底删除,释放占用的数据块。

  • 查看回收站的数据:hdfs dfs -lsr /user/root/.Trash/Current

  • 从回收站中恢复数据:hdfs dfs -cp /user/root/.Trash/Current/trashData.txt /data.txt

  • 清空回收站:hdfs dfs -expunge

  • 对比没开启回收站和开启了回收站时删除文件的日志:

    没开启回收站:

    18/04/09 21:35:40 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
    Deleted /tools ---> 成功删除(对比:回收站)
    

    开启回收站:

    Moved: 'hdfs://bigdata111:9000/tools/a.zip' to trash at: hdfs://bigdata111:9000/user/root/.Trash/Current
    

    可以看出回收站其实就是个隐藏目录,删掉的文件其实就是剪切到了那个隐藏目录里。

二、快照(snapshot)

快照其实就是一种备份策略,本质上就是一个 cp 命令。

应用场景:

  • 防止用户的错误操作
  • 备份
  • 实验 / 测试
  • 灾难恢复

HDFS 的快照操作:

  • 开启快照:hdfs dfsadmin -allowSnapshot /input

  • 创建快照:hdfs dfs -createSnapshot /input backup_input_1125_01

  • 查看快照:hdfs lsSnapshottableDir

    当然查看快照还可以通过我们的 WebConsole 来查看。

  • 对比快照:hdfs snapshortDiff /input backup_1125_01 backup_1125_02

  • 恢复快照:hdfs dfs -cp /input/.snapshot/backup_1125_01/data.txt /input

三、配额(quota)

配额作用:限制目录下的文件的数量大小。最大的配额是 Long.Max_Value。配额为 1 可以强制目录保持为空。

配额是个管理员命令

  1. 名称配额:用于设置该目录中能够存放的最多文件(目录)个数。

  2. 空间配额:用于设置该目录中最大能够存放的文件大小。

示例:

  • 设置 /input 目录的名称配额为 3:hdfs dfsadmin -setQuota 3 /input

  • 消除 /input 目录的名称配额:hdfs dfsadmin -clrQuota /input

  • 设置 /input 目录的空间配额为 1M:hdfs dfsadmin -setSpaceQuota 1M /input

  • 清除 /input 目录的空间配额:hdfs dfs -clrSpaceQuota /input

注意:设置的值一定不能小于 Hadoop 的数据块的大小,1.x 版本的数据块大小是 64M,2.x 版本的数据块大小是 128M,HDFS 保存数据是以数据块为单位分配数据的,小于数据块的大小将不能分配数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值