配置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集群客户端更新客户端。
- 结合备份策略:回收站是数据保护的最后一道防线,建议搭配定期备份机制。
配置HDFS回收站参数
- 登录FusionInsight Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 选择“集群 > 服务 > HDFS > 配置 > 全部配置”。
- 根据实际需要搜索并修改表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
- 修改完成后单击“保存”,确认操作影响后单击“确定”。
- 等待操作成功后,单击“完成”,配置已修改。
查看集群是否存在配置过期的实例,如果存在,需重启配置过期的实例使配置生效。