为hdfs 建立 回收站

image.png

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

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

我们老大 希望 回收站可以保存两天的内容,超过两天后 hdfs会自动清理掉,并且一天 检查一次 回收站

fs.trash.interval
2840
Number of minutes between trash checkpoints. If zero, the trash feature is disabled

 
    fs.trash.checkpoint.interval
      1440

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

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

为hdfs 建立 回收站_第1张图片
image.png

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

为hdfs 建立 回收站_第2张图片
image.png

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


image.png

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

image.png
为hdfs 建立 回收站_第3张图片
image.png

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

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

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

hadoop fs -expunge


image.png
为hdfs 建立 回收站_第4张图片
image.png

你可能感兴趣的:(为hdfs 建立 回收站)