为hdfs 建立 回收站

image.png

习惯了 windows mac 以后我们都爱用一些回收站,删除了文件不是太害怕,但是如果使用linux ,有时候使用root 用户不小心rm -rf file,可能会后悔莫及,同样在hdfs上也是有 类似情况的,你不小心删除了一个文件,还是希望可以找回了的,为此我们希望给hdfs建立文件回收站,为后悔买一次保险

其实为hdfs 建立回收站还是比较简单,就是在 core-site.xml做出相应的声明,并在hdfs 根目录下 创建 相应的 home 目录 ,一般是 /user/具体操作用户名,另外就是修改权限权限,要注意的就是,不是你的文件 你删除不了,没有删除权限的 你也操作不了。

我们老大 希望 回收站可以保存两天的内容,超过两天后 hdfs会自动清理掉,并且一天 检查一次 回收站
<property>
<name>fs.trash.interval</name>
<value>2840</value>
<description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled</description>
</property>

 <property>
    <name>fs.trash.checkpoint.interval</name>
      <value>1440</value>

<description> Every time the checkpointer runs it creates a new checkpoint out of current and removes checkpoints created more than fs.trash.interval minutes ago.</description>
</property>

这个需要在 Master NameNode上修改并同步到 所有的DataNode节点和 任务提交节点。
单单做了这些 当然还是不够的,我们会发现 还是会报错的
比如 在我们还没有在 hdfs上创建 /user 目录

image.png

因为不是hdfs的root 用户无法再hdfs根目录下创建 该用户自己的回收站,所以就是要自己动手了,切换到 hdfs的root 用户,创建 /user ,并把权限设置为 777,因为有多个用户同时操作 hdfs

image.png

之后开始删除
发现还是有问题,当然就是权限问题


image.png

也就是不是你的文件你删除不了,那就找属于自己的就可以了

image.png
image.png

提示我们已经转移到回收站了,如果两天内不打算恢复它的话,hdfs 会自动清理掉它,如果想恢复,当然也是可以的,如果想提前删除,当然也是可以的。

想恢复的话 就是使用 hadoop fs -mv 命令
要注意的就是目录的路径,可以使用 hadoop fs -ls -R /user 先查看了具体的路径,在做,还要注意权限问题

想提前清理的话,这个好像只能使用 supergroup 下的root 用户才可以的
,我使用 普通用户是会报权限操作的问题

hadoop fs -expunge


image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容