Hadoop之hive的drop table恢復

2021-08-24 17:42:37 字數 1020 閱讀 6531

一、恢復過程:

在之前我有對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恢復

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

Hadoop之hive的drop table恢復

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