大数据初学者问题汇总之恢复已删除的hive表数据

当不小心删除了Hive的分区表,如果HDFS上的数据也在回收站中,可以通过查看表的location,找到HDFS回收站恢复文件,然后使用`msckrepairtable`命令修复元数据。若HDFS回收站未开启,则无法直接恢复。
摘要由CSDN通过智能技术生成

如果不小心误删了hive某一个分区表怎么办?

网上有一个命令恢复法

msck repair table tablename

但是这个命令是将关于分区的元信息添加到hive metastore中,简单来说是将任何存在于hdfs上但不存在于metastore的分区恢复

但如果hdfs上也删了呢?

那只能另辟蹊径,步骤如下

一、需要知道删除前hive表在hdfs上的location,通过如下命令

desc formatted tablename

二、找到hdfs的回收站trash(此处需要开启了回收站功能的hdfs才有)

需要去hdfs目录上找到回收站里你需要的文件,此处我在网上查了资料发现,每个环境的回收站的目录都不一样,所以我得截图只能说具备一点点参考价值(我也找了很久才找着)

三、找到这个文件,那么工作已经完成了99%,只需要将你需要的这个文件copy或者mv到原始的路径下(就是第一步的路径)

hadoop fs -cp 回收站路径/表名/分区名 /原始路径/分区名

 四、数据虽然已经到了原始路径,但是hive表里的数据还没有恢复,那怎么办呢?

如果从头看到尾的话,应该可以秒答这个问题,就是文章开头提到的命令修复

msck repair table tablename

修复完就会出现如图提示,然后用命令查询一下你回收的分区是否真的恢复

show partitions tablename

到这一步,数据恢复就完成了,但是如果hdfs没开回收站机制的话

我也不知道咋办了。。。。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值