遷移hive,不同集群。
阿新 • • 發佈:2018-05-10
fault 執行 use active \n 導入數據 tps strong dir
step1: 設置默認需要導出的hive數據庫為defaultDatabase
在原集群中的任意節點上,新建“.hiverc”文件,加入如下內容:
vi ~/.hiverc use defaultDatabase;
defaultDatabase可修改為需要遷移的其它名稱
step2: 創建數據臨時目錄
hdfs dfs -mkdir /tmp/hive-export
step3: 生成數據導出腳本
執行如下命令生成數據導出腳本:
hive -e "show tables" | awk ‘{printf "export table %s to @/tmp/hive-export/%s@;\n",$1,$1}‘ | sed "s/@/‘/g" > export.sql
-- 這裏是生成全部的表,如果是遷移幾個表的話,那麽直接可以自己寫export.sql
-- 例如:export table rv_Cloud_Source to ‘/tmp/hive-export/rv_Cloud_Source‘;
step4: 手工導出數據到HDFS
執行腳本導出數據
hive -f export.sql
-- 這裏可以在export.sql加上use database;
step5: 下載數據
下載HDFS數據到本地,並傳送到目標集群(targetDir為目標集群地址)的/tmp/hive-export目錄:
hdfs dfs -get /tmp/hive-export/ scp -r hive-export/ export.sql root@targetDir hdfs dfs -put hive-export/ /tmp/hive-export
step6: 生成數據導入腳本
執行如下命令,復制導出腳本,並將腳本修改為導入腳本:
cp export.sql import.sql sed -i ‘s/export table/import table/g‘ import.sql sed -i ‘s/ to / from /g‘ import.sql
-- 這裏是導入全部表,所以使用sed做了一下替換,如果只導入幾個hive 表,那麽這樣即可:
-- use database; import table rv_Cloud_ADSDKSource from ‘/tmp/hive-export/rv_Cloud_ADSDKActiveUser‘;
step7: 導入數據
hive -f import.sql
主要轉自:https://docs.ucloud.cn/analysis/uhadoop/migration 中的hive遷移
遷移hive,不同集群。