Hadoop之hive的drop table恢復

2021-09-07 22:16:14 字數 1252 閱讀 4790

一、引言:

快下班的時候我開發同事問能不能將hive中drop掉的資料恢復過來,我記得是有開**站的,當時我回答說可以恢復的。

二、恢復過程:

在之前我有對hadoop的**站有過了解,就是將hdfs dfs -rm刪除掉的檔案進行恢復,只需要hdfs dfs -mv將檔案從**站中搬過來就行,我就先使用這個方法,但是效果不佳,執行select count(*) from table_name,得到的結果為0。這個時候我想到這個表被drop掉以後在mysql的元資料庫中已經沒有資料了,那就得需要將這些資料的資訊重新寫入到mysql中。具體恢復步驟如下:

1、建立表:

create

table

temp_richard(

op_time string,

province_id string,

pay_type string,

client_type string,

index_id string,

index_value

bigint

) partitioned

by (dayid string) stored as rcfile location '

/dw/tmp/temp_richard

';

2、將**站中的資料cp出來乙份:

hdfs dfs -cp /

user

/hadoop/.trash/

current

/dw/dm/tmp_richard /tmp/richard/

3、將臨時目錄下的資料load到表中:

load data inpath '

/tmp/zhulh/dayid=20160101/000000_0

'into

table tmp_richard partition (dayid=

'20160101

');

備註:這裡需要將每個分割槽的資料load到相應的分割槽表中。

4、驗證資料:

hive>

select

count(*) from tmp_richard;

三、重點說明:

hive 中使用truncate命令將表截斷的話,它是不會進**站的,是沒辦法恢復的。這個跟oracle truncate有點類似的。

Hive之 hive與hadoop的聯絡

hive與hadoop呼叫圖 解析 1 提交sql 交給驅動 2 驅動編譯 解析相關的字段表資訊 3 去metastore查詢相關的資訊 返回字段表資訊 4 編譯返回資訊 發給驅動 5 驅動傳送乙個執行計畫 交給執行引擎 6 執行計畫 三種形式 metastore namenode metastor...

Hadoop之hive的drop table恢復

一 恢復過程 在之前我有對hadoop的 站有過了解,就是將hdfs dfs rm刪除掉的檔案進行恢復,只需要hdfs dfs mv將檔案從 站中搬過來就行,我就先使用這個方法,但是效果不佳,執行select count from table name,得到的結果為0。這個時候我想到這個表被drop...

Hadoop之hive的drop table恢復

一 引言 快下班的時候我開發同事問能不能將hive中drop掉的資料恢復過來,我記得是有開 站的,當時我回答說可以恢復的。二 恢復過程 在之前我有對hadoop的 站有過了解,就是將hdfs dfs rm刪除掉的檔案進行恢復,只需要hdfs dfs mv將檔案從 站中搬過來就行,我就先使用這個方法,...