首页 对象存储 OSS 用户指南 数据湖管理 使用OSS-HDFS服务回收站

使用OSS-HDFS服务回收站

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

前提条件

使用4.5.1及以上版本JindoSDK。下载地址,请参见GitHub

通过客户端使用OSS-HDFS服务回收站

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

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

    说明

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

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

    您在执行删除操作的7天内,可以随时从对应的时间戳目录下恢复删除的文件。

通过Hadoop FileSystem Shell使用OSS-HDFS服务回收站

  1. 通过Hadoop FileSystem Shell命令删除文件。

    命令如下:

    hadoop fs -rm oss://examplebucket/dir/subdir
  2. 开启回收站功能。

    客户端的Hadoop FileSystem Shell命令默认不开启回收站功能。您需要在core-site.xml文件通过配置项fs.trash.interval开启回收站功能。

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

    <value>表示设置文件保留在回收站中的时间阈值,单位为分钟,默认值为1440。当文件保存时间超过该阈值时,系统将自动从回收站中永久删除该文件。

    重要
    • 为避免误删除文件,建议您使用默认值1440。如果设置为0,表示禁用回收站。

    • 不建议您将该参数设置过大,避免回收站中过多的文件占用集群的可用空间。

    开启回收站功能后,客户端会自动将执行命令转换为hadoop fs -mv oss://examplebucket/dir/subdir /user/<username>/.Trash/Current/dir/subdir,并由服务端负责定时清理。

    如果您希望立即删除文件,释放空间。您可以添加-skipTrash参数。

通过Hadoop生态组件使用OSS-HDFS服务回收站

Hive、Spark和Flink等组件在使用FileSystem(HDFS)的Delete接口时,将立即删除文件。

如果您希望使用OSS-HDFS服务回收站时,您需要显式调用FileSystem的rename接口,将目标文件手动挪至/user/<username>/.Trash/Current目录下,由OSS-HDFS服务端负责定期删除。

阿里云首页 对象存储 相关技术圈