一、引言:
快下班的時候我開發同事問能不能將hive中drop掉的資料恢復過來,我記得是有開**站的,當時我回答說可以恢復的。
二、恢復過程:
在之前我有對hadoop的**站有過了解,就是將hdfs dfs -rm刪除掉的檔案進行恢復,只需要hdfs dfs -mv將檔案從**站中搬過來就行,我就先使用這個方法,但是效果不佳,執行select count(*) from table_name,得到的結果為0。這個時候我想到這個表被drop掉以後在mysql的元資料庫中已經沒有資料了,那就得需要將這些資料的資訊重新寫入到mysql中。具體恢復步驟如下:
1、建立表:
createtable
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將檔案從 站中搬過來就行,我就先使用這個方法,...