以下是在CentOS上恢复HDFS数据的常用方法:
-
利用回收站恢复
- 确保
core-site.xml中启用回收站:<property><name>fs.trash.interval</name><value>120</value></property> <property><name>fs.trash.checkpoint.interval</name><value>120</value></property> - 恢复命令:
hdfs dfs -cp /user/username/.Trash/Current/deleted_file /path/to/restore
- 确保
-
基于快照恢复
- 创建快照:
hdfs dfsadmin -allowSnapshot /path hdfs dfs -createSnapshot /path snapshotName - 恢复命令:
hdfs dfs -cp /path/.snapshot/snapshotName/file /path/to/restore
- 创建快照:
-
使用Hadoop工具恢复
- fsck命令:检查并修复损坏数据块
hdfs fsck / -files -blocks -locations - DistCp命令:跨集群复制数据恢复
hadoop distcp source_path destination_path
- fsck命令:检查并修复损坏数据块
-
手动恢复(高风险)
- 停止HDFS服务:
sudo systemctl stop hadoop-namenode hadoop-datanode - 替换元数据文件(如
fsimage)并重启服务(需谨慎操作)。
- 停止HDFS服务:
注意:操作前需先备份数据,建议在测试环境验证恢复流程,优先使用回收站或快照等低风险方式。