step1: 設置默認須要導出的hive數據庫爲defaultDatabasesql
在原集羣中的任意節點上,新建「.hiverc」文件,加入以下內容:數據庫
vi ~/.hiverc use defaultDatabase;
defaultDatabase可修改成須要遷移的其它名稱
step2: 建立數據臨時目錄oop
hdfs dfs -mkdir /tmp/hive-export
step3: 生成數據導出腳本code
執行以下命令生成數據導出腳本:hadoop
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: 手工導出數據到HDFSget
執行腳本導出數據io
hive -f export.sql
-- 這裏能夠在export.sql加上use database;
step5: 下載數據table
下載HDFS數據到本地,並傳送到目標集羣(targetDir爲目標集羣地址)的/tmp/hive-export目錄:class
hdfs dfs -get /tmp/hive-export/ scp -r hive-export/ export.sql root@targetDir hdfs dfs -put hive-export/ /tmp/hive-export
step6: 生成數據導入腳本import
執行以下命令,複製導出腳本,並將腳本修改成導入腳本:
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遷移