使用回收站

使用OSS-HDFS回收站时,需要客户端将待删除文件挪至指定目录,并由服务端定时清理该目录下的数据。

删除文件说明

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

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

    说明

    <timestamp>以Unix时间戳的形式展示,表示自UTC时间19700101号开始的秒数。<timestamp>用于表示某一时间段内被删除的文件,会被归类到带时间戳的目录下。

  3. 经过指定天数后,/user/<username>/.Trash/<timestamp>目录被永久删除。

    回收站中的数据保存时间默认是3天,支持自定义数据保存时间为1~14天。例如,回收站指定保存时间为5天,则您在执行删除操作的5天内,可以随时从对应的时间戳目录下恢复删除的文件。以下步骤用于设置回收站中数据的保存天数:

    1. 登录OSS管理控制台

    2. 单击左侧导航栏的Bucket列表,然后单击目标Bucket。

    3. 在左侧导航栏,选择数据湖管理 > HDFS服务

    4. HDFS服务页签,单击回收站区域的Dingtalk_20240527145039.jpg,修改回收站中数据的保存天数。

    5. 单击确定

说明

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

Hadoop FileSystem Shell使用回收站功能

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

说明

OSS-HDFS支持使用回收站功能,OSS不支持使用回收站功能。

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

    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 -f oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c
    • 方式二:执行删除命令时添加-skipTrash参数。

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

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

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

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