Hive表误删恢复
一、简介
因hive表删除后,hdfs文件会先放入回收站,定期清理回收站。在回收之前可以进行清理数据
二、恢复步骤
2.1 看表存储是否损坏
select type from dw.ods_test1 group by type
2.2 查看表hdfs文件存储位置
show create table dw.ods_test1
'ofs://f4.com/user/hive/warehouse/dw.db/ods_test1'
2.3 查看历史路径
ofs://f4.com/user/hadoop/.Trash/Current/user/hive/warehouse/dw.db/ods_test1_back
2.4 查找上一个back任务全量数据,因为删除多次会生成多个文件夹
hdfs dfs -ls ofs://f4.com/user/hadoop/.Trash/Current/user/hive/warehouse/dw.db| grep ods_test1_back
2.5 找到任务调度失败上一个周期数据。例8点失败,去hdfs找7点周期数据(2022-07-16 07:23)
ofs://f4.com/user/hadoop/.Trash/Current/user/hive/warehouse/dw.db/ods_test1_back1657929956643
2.6 因线上表损坏,可以备份后删除线上文件
hdfs dfs -rm -r ofs://f4.com/user/hive/warehouse/dw.db/ods_test1/*
2.7 挪动回收站文件到线上表,完成数据恢复
hdfs dfs -mv ofs://f4.com/user/hadoop/.Trash/Current/user/hive/warehouse/dw.db/ods_test1_back1657929956643/* ofs://f4.com/user/hive/warehouse/dw.db/ods_test1/
2.8 测试数据是否恢复正常
检查下数据,查看是否执行失败,可以根据一个枚举值较少的字段group by
select type from dw.ods_test1 group by type