hive資料遷移

2021-07-06 10:25:50 字數 1109 閱讀 8030

資料遷移指令碼:

1、在原集群上建立,並設定相應許可權

hadoop  fs -mkdir /tmp/hive-export

2、生成匯出指令碼

hive -e "use fangyc;show tables " | awk '' | sed "s/@/'/g" > export.hql

fangyc:是資料庫名,根據實際情況修改

3、手工匯出資料到hdfs

hive -f export.hql

命令檢視下匯出資料:hadoop fs -ls  /tmp/hive-export

//注意在目標集群上建立 /tmp/hive-export目錄,並且設定相應的操作許可權

hdfs dfs -get /tmp/hive-export/*  //原集群操作

hdfs dfs -put * /tmp/hive-export  //目標集群操作

//單個表資料移動,有bug,此處可以使用distcp  源資料   目標資料

//hadoop distcp hdfs://namenode1/tmp/hive-export/表名  hdfs://namenode2/tmp/hive-export/

5、在目標集群上構建

構造匯入語句

cp export.hql import.hql 

sed -i 's/export table/import table/g' import.hql

sed -i 's/ to / from /g' import.hql

6、匯入資料

hive -f import.hql

分割槽特別處理(元資料出爐、分割槽資料匯入)

先編輯 import.hql為單一表的操作,最好複製乙份

然後執行hive -f import.hql,就是加在元資料

刪除dt分割槽

hadoop fs -rm -r /user/hive/warehouse/zh000001_vrv.db/browselog_gw/dt*

上傳本地備份資料中的所有dt到表中

hadoop fs -put  browselog_gw/dt*   /user/hive/warehouse/zh000001_vrv.db/browselog_gw/

hive資料遷移

網路互通的兩個hadoop集群中,可執行如下命令,將nn1節點所在集群a上目錄a.dir拷貝到nn2節點所在集群b目的b.dir上 hadoop distcp i hdfs nn1 8020 a.dir hdfs nn2 8020 b.dir詳情參考 設定預設需要匯出的hive資料庫為default...

遷移hive資料

新集群的資料遷移到老集群,往往會遇到很多問題 1.小檔案多 2.老集群效能比較差 3.資料量大 使用資料遷移工具nifi 該工具的特點是輕量,對小檔案遷移支援度高,大檔案遷移慢 遇到的問題 1.曾經在老集群寫spark程式合併小檔案,但老集群效能比較低,程式跑了一晚上都沒有合併完成乙個月 2.將小集...

資料遷移 Hive

方式 1 使用hive sql進行資料的匯入匯出 2 export import方式 方式 1 將資料匯出到本地 insert overwrite local directory 路徑 row format delimited fields terminated by select 欄位1,欄位2 ...