【进阶篇】Hadoop开启回收站及回收站工作原理

        本次介绍的是Hadoop的回收站机制,Hadoop的回收站(Trash)机制提供了一种文件删除的安全网,允许用户在误删除文件后能够恢复数据。在默认情况下Hadoop的回收站是没有开启的,那么要如何打开呢?接下来就让我们了解一下。

目录

一、启用回收站

回收站工作原理

二、常用命令

注意事项

三、补充:Hadoop回收站检查点机制

        基本概念:

        工作流程:

        检查点机制的作用:

注意事项

四、Hadoop回收站机制在集群中的分发需求

回收站机制的实现原理

为什么不需要集群范围分发


一、启用回收站

        首先找到我们的Hadoop的core-site.xml配置文件,

对其进行如下修改(在文件后面添加即可无需改动文本其他内容):

<property>
  <name>fs.trash.interval</name>
  <value>1440</value> <!-- 24小时 -->
</property>

上述文本中1440是文件在回收站中保留的分钟数,用户也可根据自己需要进行修改。

修改完后记得重启Hadoop集群使配置生效!!!

回收站工作原理

  1. 删除文件时的行为:当使用HDFS命令删除文件时,文件并不会立即从系统中永久删除,而是被移动到用户主目录下的.Trash目录中。

  2. 保留期限:文件会在回收站中保留一段时间(默认为6小时),超过这个时间后,系统会自动永久删除这些文件。

  3. 存储位置:每个用户都有自己的回收站目录,路径为:/user/<username>/.Trash

二、常用命令

1、删除文件(移至回收站):

hdfs dfs -rm /path/to/file

2、跳过回收站直接删除:

hdfs dfs -rm -skipTrash /path/to/file

3、恢复文件:

hdfs dfs -mv /user/<username>/.Trash/Current/path/to/file /original/path

4、清空回收站:

hdfs dfs -expunge

注意事项

  1. 回收站功能默认情况下是禁用的(fs.trash.interval=0)。

  2. 回收站只对通过HDFS API或命令行删除的文件有效,程序直接调用API删除的文件不会进入回收站。

  3. 回收站会占用HDFS存储空间,需要合理设置保留时间

  4. 对于重要数据,建议仍然使用定期备份策略,而不是依赖回收站

通过合理配置和使用Hadoop回收站机制,可以显著降低因误操作导致数据丢失的风险。

三、补充:Hadoop回收站检查点机制

        基本概念:

  1. 回收站目录结构:HDFS回收站实际上维护了一个"当前回收站"(Current)和多个"检查点回收站"(时间戳命名的目录)
  2. 检查点创建:系统定期将Current目录中的内容归档到检查点目录

设置回收站检查点,找到Hadoop的core-site.xml配置文件,在文件里追加如下内容:

<property>
  <name>fs.trash.checkpoint.interval</name>
 <value>360</value> <!-- 6小时 -->
</property>

        工作流程:

        • 当用户删除文件时,文件首先被移动到/user/<username>/.Trash/Current/目录

        • 每隔用户设置的时间后,NameNode会创建一个新的检查点目录,然后将Current目录中的内容移动到该检查目录,最后清空Current目录准备接收新的文件。

        • 当检查点目录的存活时间超过回收站设置的清理时间,该检查点目录及其内容会被自动删除

        检查点机制的作用:

  • 防止Current目录过大:

                如果不定期归档,Current目录会不断增长,可能影响HDFS性能

  • 精确控制文件保留时间:

                检查点机制确保文件在回收站中的保留时间不超过设定的时间,没有检查点机制,某些文件可能因为停留在Current目录而保留更长时间

  • 便于管理:

                分时间段的检查点目录使得管理员可以更清晰地了解回收站的内容

注意事项

  1. 检查点操作由NameNode执行,会消耗一定的系统资源

  2. 过于频繁的检查点间隔(如每分钟)会影响集群性能

  3. 检查点机制不影响用户通过.Trash/Current恢复文件的操作

  4. 检查点目录的清理是基于目录创建时间,而非文件删除时间

通过这种机制,Hadoop实现了对删除文件的有效管理,既保证了数据可恢复性,又避免了回收站无限增长占用存储空间的问题。

四、Hadoop回收站机制在集群中的分发需求

        Hadoop的回收站(Trash)机制不需要特别的分发或同步到整个HDFS集群,因为它的实现方式是基于HDFS本身的特性设计的。

回收站机制的实现原理

  1. 集中式管理

    • 回收站功能完全由NameNode管理和控制

    • 所有删除操作都通过NameNode记录,物理数据块位置不变

    • 只是元数据中的文件路径从原始位置改为回收站路径

  2. 虚拟目录结构

    • .Trash目录是HDFS逻辑目录结构的一部分

    • 对用户显示为普通目录,实际不涉及特殊的数据分发

为什么不需要集群范围分发

  1. NameNode统一管理

    • 所有文件删除/恢复操作都通过NameNode的元数据操作完成

    • DataNode上的实际数据块不需要移动,只是引用关系变化

  2. 配置集中生效

    • 只需在NameNode的core-site.xml中配置fs.trash.interval等参数

    • 所有客户端和DataNode会自动遵循这些规则

  3. 操作一致性

    • 用户通过HDFS客户端执行的删除操作会自动遵守回收站规则

    • 不需要各节点单独维护回收站状态

        虽然理论上只需要NameNode配置,但实际使用时最好在所有节点的core-site.xml中保持相同配置,防止不同客户端因配置不同导致行为不一致。但这不是"分发"回收站,而是确保配置一致。

感谢阅读,喜欢的话希望能点点赞哦~下次见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值