赞
踩
1.前提:要开启垃圾箱,才能进行数据表恢复
core-site.xml配置一下参数,fs.trash.checkpoint.interval 为0,表示禁用垃圾箱;设置对应时间【单位:分钟】进行垃圾文件回收、暂存
- <property>
- <name>fs.trash.interval</name>
- <value>1440</value>
- </property>
- <property>
- <name>fs.trash.checkpoint.interval</name>
- <value>0</value>
- </property>
2.从垃圾箱查找到对应时间删除、覆盖的数据
hdfs dfs -ls /user/hadoop/.Trash/220628170000/hive//dw/ods.db/ods_test/
3.然后创建临时表,复制到临时表的hdfs目录进行恢复
create table ods.ods_test_2022 like ods_test ;
hdfs dfs -cp hdfs dfs -ls /user/hadoop/.Trash/220628170000/hive//dw/ods.db/ods_test/* hdfs dfs -ls /user/hadoop/.Trash/220628170000/hive//dw/ods.db/ods_test_20222/
4.查看无误后,进行元数据修复【恢复元数据,解决分区表分区信息;解决Spark读取非分区表无数据的情况(实际已经恢复成)】
hive -e "msck repair table ods.ods_test_2022;"
5.然后将临时表命名为目标数据表
hive>
alter table test rename to ods_test_2022;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。