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

 

posted @ 2022-07-18 17:08  黑水滴  阅读(735)  评论(0编辑  收藏  举报