栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive误删表,数据恢复

hive误删表,数据恢复

本文删除的是hive的分区表,parquet格式snappy压缩。有分桶,现在做一下数据的恢复

首先你要知道你的hdfs回收站是否开启

找到你的回收站里的刚才删除的hive表数据的文件,前提是你的表示drop的,而不是truncate的,truncate的表数据我暂时不知道能不能恢复

我们hive表删除的数据是在 标记1 的这个文件里(Current)这个需要看你的配置和个人的登陆服务器情况,但是一定不会在标记2这里

新建原表

CREATE TABLE `hive_national_f4_engine_data`(
  `rowkey` string COMMENT 'rowkey', 
  `vin` string COMMENT 'vin', 
  `vid` int COMMENT 'vid', 
  `collecttime` string COMMENT '采集时间', 
  `receivetime` string COMMENT '接收时间', 
  `protocoltype` string COMMENT '端口号', 
  `speed` int COMMENT '车速', 
  `atmosphericpressure` int COMMENT '大气压', 
  `outputtorqueofengine` int COMMENT '发动机净输出扭矩', 
  `frictiontorque` int COMMENT '摩擦扭矩', 
  `enginerotation` int COMMENT '发动机转速', 
  `enginefuelflow` int COMMENT '发动机燃料流量', 
  `upscrsensoroutput` int COMMENT 'SCR上游NOX传感器输出值', 
  `downscrsensoroutput` int COMMENT 'SCR下游NOX传感器输出值', 
  `reactantremind` int COMMENT '反应剂余量', 
  `sensorinputquantity` int COMMENT '空气质量流量传感器读取的进气量', 
  `scroutlettemperature` double COMMENT '出口温度', 
  `scrinlettemperature` double COMMENT '入口温度', 
  `dpfpressurediff` int COMMENT 'DPF压差', 
  `coolantemperature` int COMMENT '发动机冷却液温度', 
  `tankleve` int COMMENT '油箱液位', 
  `actualegrvalveopening` double COMMENT '实际的EGR阀开度', 
  `setegrvalveopening` double COMMENT '设置的EGR阀开度', 
  `locatiostatus` int COMMENT '定位状态', 
  `lng` int COMMENT '经度', 
  `lat` int COMMENT '维度', 
  `dlng` int COMMENT '百度经度', 
  `dlat` int COMMENT '百度维度', 
  `isreissue` int COMMENT '是否是补发数据', 
  `totoalmileage` bigint COMMENT '累计里程', 
  `changemileage` bigint COMMENT '变化里程', 
  `downnoxsensoroutput` int COMMENT '催化器下游NOX传感器输出值', 
  `uposensoroutput` int COMMENT '催化器上游氧传感器输出值', 
  `downosensoroutput` int COMMENT '催化器下游氧传感器输出值', 
  `mechanicaltype` int COMMENT '机械类型')
PARTITIonED BY ( 
  `year` string COMMENT 'year=yyyy', 
  `month` string COMMENT 'month=yyyy-MM', 
  `day` string COMMENT 'day=yyyy-MM-dd')
CLUSTERED BY ( 
  vin) 
INTO 5 BUCKETS
STORED AS PARQUET
TBLPROPERTIES('parquet.compression'='SNAPPY');

要是你的建表语句都记不得或者找不到了,那就没救了,收拾收拾包儿回家休息吧

现在就可以把原表数据的文件mv回到我们hive的数据文件位置了

sudo -u hdfs hdfs dfs -mv /user/root/.Trash/Current/user/hive/warehouse/hive_national_f4_engine_data/* /user/hive/warehouse/hive_national_f4_engine_data

现在的数据已经到了hive的数据位置了

看下现在新建的表

hive> select * from hive_national_f4_engine_data;
OK
Time taken: 1.086 seconds
hive> show partitions hive_national_f4_engine_data;
OK
Time taken: 0.33 seconds
hive> 

现在是没有数据,也没有分区信息的,因为我们的hive表元数据还没有修复

最后一步了,修复表元数据

hive > MSCK REPAIR TABLE hive_national_f4_engine_data;

查证一下

show partitions hive_national_f4_engine_data;

 ok 了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号