首页 开源大数据平台E-MapReduce 组件操作指南 OSS/OSS-HDFS 基础使用 阿里云OSS-HDFS(JindoFS服务)回收站使用说明

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

本文为您介绍如何使用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 fs -rm oss://bucket/a/b/c

客户端的Hadoop Shell命令默认不开启Trash功能,因此需要在core-site.xml里添加配置来开启Trash功能。

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

该value取值只需大于0即可。

此时在客户端会自动将rm命令转换为一条hadoop fs -mv oss://bucket/a/b/c /user/<username>/.Trash/Current/a/b/c命令。因此,您不需要感知回收站功能的存在,服务端会负责清理。

如果您想立即删除该文件,释放空间,可以添加-skipTrash参数,此时将立即删除该文件。

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

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

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

阿里云首页 开源大数据平台 E-MapReduce 相关技术圈