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

Posted 一个木登子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据初学者问题汇总之恢复已删除的hive表数据相关的知识,希望对你有一定的参考价值。

如果不小心误删了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没开回收站机制的话

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

湿货|小白学习大数据测试之Hive和Hbase

作为初学者经常会对Hive和Hbase产生疑问,不知道两者是干啥的,有啥区别,总觉得都是存储数据的。其实他们还真是有本质区别的,请听我慢慢道来~

Hbase是nosql数据库,以key-value形式存储数据的,主要用于海量数据的实时查询,比如日志信息。

Hive是数据仓库,而非数据库,主要是用来解决数据处理、计算的。开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算

两者一般都是配合使用的,为了方便大家理解我简单画了下数据流图。

技术分享图片

最后来一点小科普:

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

  • OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

  • OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

像我们上面讲的Hbase就属于OLTP,Hive属于OLAP

技术分享图片

以上是关于大数据初学者问题汇总之恢复已删除的hive表数据的主要内容,如果未能解决你的问题,请参考以下文章

手机文件丢失恢复技巧大汇总 安卓苹果数据丢失都可恢复

大数据开发实战:Hive优化实战3-大表join大表优化

Hive SQL DML语法之查询数据

Hive SQL DML语法之加载数据

Hive(五)DML数据操作

恢复oracle数据库误删除数据的方法汇总