
# 配置HDFS文件回收站机制
#### 操作场景
HDFS的回收站机制是一种数据保护机制，它允许用户在删除文件或目录后，将其暂时存储在一个特定的位置，而不是立即永久删除。当用户误删除重要数据时，可以从回收站中恢复数据，避免数据永久丢失。
被删除的文件会被移动到用户主目录下的".Trash"目录中，路径通常为"hdfs://*\<nameservice\>* /user/*\<username\>*/.Trash"。
- 优点：
  - 防止误删除导致的数据丢失，提供数据恢复能力。
  
  - 符合数据安全和合规性要求，尤其适用于生产环境。
   
- 缺点：
  - 占用额外的存储空间，尤其是在大量删除操作时。
  
  - 若配置不当（如保留时间过长），可能影响NameNode性能。
   
用户可以调整HDFS文件保留在回收站中的时间阈值，一旦文件保存时间超过此阈值，将从回收站中永久地删除。如果回收站被清空，回收站中的所有文件也将被永久删除。
回收站参数配置建议：
- 合理配置回收站文件保存时间：根据数据重要性设置保留时间，例如生产环境设为 7 天（10080分钟），测试环境可设为更短时间。
- 定期清理：结合业务需求，定期通过**hdfs dfs -expunge -immediate**命令释放存储空间。
- 谨慎使用-skipTrash参数：仅在确认数据无需保留时使用该参数绕过回收站机制，避免误操作删除重要数据。 MRS 3.1.3及之后版本集群，-skipTrash默认禁止，可参考以下操作开启：登录Manager，选择"集群 \> 服务 \> HDFS \> 配置 \> 全部配置"，搜索并设置"dfs.client.skipTrash.enabled"（表示HDFS客户端命令行**hdfs dfs -rm** 中是否允许使用-skipTrash选项跳过回收站删除数据）参数值为"true"，重启配置过期的服务或实例，并参考[服务端配置过期后更新MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0090.html)更新客户端。
  
- 结合备份策略：回收站是数据保护的最后一道防线，建议搭配定期备份机制。
 
#### 配置HDFS回收站参数
1. 登录FusionInsight Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HDFS \> 配置 \> 全部配置"。
3. 根据实际需要搜索并修改[表1]相关参数。
   
    表1参数说明 
   | **参数**                       | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | **配置示例** |
   |:---|:---|:---|
   | fs.trash.interval            | 回收站中文件保留时间，文件被移入回收站的时间超过此参数值后，会被永久删除。建议合理配置，以减少因误删导致的数据丢失风险。 - 单位：分钟。  - 取值范围：1440～259200。                                                                                                                                                                                                                                                                                                          | 2880     |
   | fs.trash.checkpoint.interval | 配置回收站检查点间隔时间。应小于等于"fs.trash.interval"参数的值。 检查点程序每次运行时都会创建一个新的检查点并会移除"fs.trash.interval"分钟前创建的检查点。例如，系统每10分钟检测是否存在老化文件，如果发现有老化文件，则删除。对于未老化文件，则会存储在checkpoint列表中，等待下一次检查。 不推荐将此参数值设置为0。此参数的值设置为0表示系统不会检查老化文件，所有老化文件会被保存在系统中，可能导致集群的磁盘空间不足。 - 单位：分钟。  - 取值范围：0～*fs.trash.interval*。   | 60       |
      
   
   
4. 修改完成后单击"保存"，确认操作影响后单击"确定"。
5. 等待操作成功后，单击"完成"，配置已修改。 
   查看集群是否存在配置过期的实例，如果存在，需重启配置过期的实例使配置生效。
   
   
 
