Ubuntu Hadoop 数据恢复实操指南
一、先判断可用恢复路径
hadoop fs -ls /user/$USER/.Trash/Current 或 hdfs dfs -ls /user/$USER/.Trash/Current,若能看到被删文件,直接从回收站 mv 回原路径即可。回收站是否生效取决于参数 fs.trash.interval(为 0 表示关闭)。hdfs lsSnapshottableDir 查看目录是否已启用快照;已启用时,快照位于 .snapshot 子目录下,可用快照将文件/目录拷贝回原位置。二、方法一 回收站恢复(最快)
hadoop fs -ls /user/$USER/.Trash/Current/...hadoop fs -mv /user/$USER/.Trash/Current/.../your_file /your/original/pathfs.trash.interval:保留时间(分钟),0 为关闭;fs.trash.checkpoint.interval:检查点间隔(分钟),应 ≤ 上一个值。<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>1440</value>
</property>
提示:回收站是用户级机制,文件实际位于 /user/用户名/.Trash/Current。三、方法二 快照恢复(时间点恢复)
hdfs dfsadmin -allowSnapshot <path> 开启快照功能,并且删除前已创建过快照。hdfs dfsadmin -allowSnapshot <path>hdfs dfs -createSnapshot <path> [snapshotName]hdfs dfs -ls <path>/.snapshothdfs snapshotDiff <path> <fromSnap> <toSnap>(结果中 + 创建、- 删除、M 修改、R 重命名)hdfs fs -cp <path>/.snapshot/<snapName>/your_file /your/original/pathhdfs fs -cp -r <path>/.snapshot/<snapName>/your_dir /your/original/path四、方法三 无回收站无快照时的恢复路径
五、预防与运维建议
fs.trash.checkpoint.interval ≤ 该值,便于误删回滚。createSnapshot,用 snapshotDiff 做变更审计,必要时快速回滚。