天天看点

大数据:如何恢复误删除的 hive 表数据

作者:明少三年

导语

在大数据环境中,误删除(drop)了 hive 表后如何恢复表数据呢?通过本文步骤可以快速恢复。

恢复过程

①创建测试库/测试表,插入测试数据

create database dengyong;
create table dengyong(id int, name string);
insert into dengyong values(100001, '张三丰');           
大数据:如何恢复误删除的 hive 表数据

演示001

大数据:如何恢复误删除的 hive 表数据

演示002

②模拟删除表

drop table dengyong;
show tables;           
大数据:如何恢复误删除的 hive 表数据

演示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           
大数据:如何恢复误删除的 hive 表数据

演示004

b.查看hdfs数据目录是否存在,hdfs dfs -ls 数据目录。如存在则执行备份操作,如不存在则直接执行从垃圾回收站中恢复数据

hdfs dfs -ls /user/hive/warehouse/dengyong.db/dengyong           
大数据:如何恢复误删除的 hive 表数据

演示005

(注:如数据目录原本存在,先备份数据目录,hdfs dfs -mv 数据目录 数据目录_bak)

c.从垃圾回收站(步骤一中查出的目录)中恢复数据:

hdfs dfs -mv垃圾回收站中的目录 数据目录           
大数据:如何恢复误删除的 hive 表数据

演示006

⑤执行msck repair table_name 修改元数据与数据之间的关系

msck repair table dengyong;           
大数据:如何恢复误删除的 hive 表数据

演示007

⑥恢复后验证

大数据:如何恢复误删除的 hive 表数据

演示008