导语
在大数据环境中,误删除(drop)了 hive 表后如何恢复表数据呢?通过本文步骤可以快速恢复。
恢复过程
①创建测试库/测试表,插入测试数据
create database dengyong;
create table dengyong(id int, name string);
insert into dengyong values(100001, '张三丰');
演示001
演示002
②模拟删除表
drop table dengyong;
show tables;
演示003
③找到建表语句再重新建一张表
create table dengyong(id int, name string);
④使用HDFS回收站恢复数据
a.使用客户端的HDFS命令,hdfs dfs -find /user/*/.Trash -name warehouse(如果是具体的表或者库,warehouse替换为表名或库名),如能查出结果则代表数据还存在回收站中,可以通过还原回收站中文件进行恢复。
hdfs dfs -find /user/*/.Trash -name dongyong
演示004
b.查看hdfs数据目录是否存在,hdfs dfs -ls 数据目录。如存在则执行备份操作,如不存在则直接执行从垃圾回收站中恢复数据
hdfs dfs -ls /user/hive/warehouse/dengyong.db/dengyong
演示005
(注:如数据目录原本存在,先备份数据目录,hdfs dfs -mv 数据目录 数据目录_bak)
c.从垃圾回收站(步骤一中查出的目录)中恢复数据:
hdfs dfs -mv垃圾回收站中的目录 数据目录
演示006
⑤执行msck repair table_name 修改元数据与数据之间的关系
msck repair table dengyong;
演示007
⑥恢复后验证
演示008