大数据初学者问题汇总之恢复已删除的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表数据的主要内容,如果未能解决你的问题,请参考以下文章