阿里云OSS-HDFS(JindoFS服务)回收站使用说明

更新时间:
复制 MD 格式

使用OSS-HDFS服务的回收站功能时,客户端在执行删除操作时会先将待删除文件移动至特定回收站目录,然后由服务端按照预定策略自动清理该回收站目录下的数据。

删除文件说明

  1. 当您从OSS-HDFS服务非强制删除文件时,文件不是被立即删除,会先被挪到/user/<username>/.Trash/Current目录下。

  2. 当经过30分钟后,Current目录下文件会被挪到/user/<username>/.Trash/<timestamp>目录下。

    说明

    某一时间段内被删除的文件,会被归类到一个带时间戳的目录下,表示是在这个时间内被删除的,相当于一次Checkpoint。

  3. 当经过3天后,这个目录将会被永远删除。

因此在3天内,您有机会从.Trash目录下找到对应时刻被删除的文件,将其从.Trash挪出,从而恢复它。

说明

回收站功能是由客户端和服务端配合形成。客户端负责将待删除文件挪到.Trash目录下;服务端默认开启定时清理,负责维护/user/<username>/.Trash目录下的定时清理。

Hadoop FileSystem Shell使用回收站功能

Hadoop FileSystem Shell中,客户端默认开启回收站功能。

说明

OSS-HDFS支持使用回收站功能,OSS不支持使用回收站功能(因为OSS服务端不负责清理Trash目录)。

  • 执行以下删除命令,文件移至回收站,OSS-HDFS服务端负责清理。

    hadoop fs -rm  oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c

    客户端会自动将删除请求转化为移动操作,即hadoop fs -mv oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c /user/<username>/.Trash/Current/a/b/c命令。这样,您无需显式管理回收站功能,服务端会负责清理。

  • 执行以下命令彻底删除文件并释放存储空间,文件不会移至回收站。

    hadoop fs -rm -skipTrash oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c

除上述强制删除方式外,以下方式删除的文件同样不会移至回收站,会被永久删除,无法从.Trash目录恢复:

  • OSS 管理控制台HDFS 页签中删除文件。

  • 通过生命周期规则删除对象。

只有执行hadoop fs -rm命令且不添加-skipTrash参数的非强制删除,文件才会被移至回收站,可在保留期内从.Trash目录恢复。

Hadoop生态组件使用回收站功能

Hive、SparkFlink等组件并不感知OSS-HDFS服务回收站功能的存在,使用FileSystem(HDFS)的Delete接口意味着立即删除。

OSS-HDFS采取了跟开源Hadoop相似的策略。如果您需要使用回收站功能,需要显式地调用FileSystemrename接口,将目标文件手动挪到/user/<username>/.Trash/Current目录下,由OSS-HDFS服务端负责定期删除。