天天看點

hive資料遷移

比如需要把生産的hive叢集資料遷移到另一個叢集,hive提供了2個指令工具,可以實作表的批量遷移。 [export/import]

  • 設定預設需要導出的hive資料庫
在hive目錄/etc/alternatives/hive-conf下添加.hiverc
vi ~/.hiverc
use test;           
  • 建立資料臨時目錄
hdfs dfs -mkdir /tmp/test           
  • 生成導出資料腳本
hive -e "show tables " | awk '{printf "export table %s to |/tmp/hive-export/%s|;\n",$1,$1}' | sed "s/|/'/g" > /home/hive/qcf/export.hql           
  • 手工導出資料到hdfs
hive -f export.hql           

- 下載下傳hdfs資料到本地并傳送到目标hadoop叢集的/tmp/ test 目錄 先get到本地:

hdfs dfs -get /tmp/ test /*           
  • 然後put到目标叢集上
hdfs dfs -put * /tmp/test           
  • 構造導入語句
cp export.sql import.sql
sed -i 's/export table/import table/g' import.sql
sed -i 's/ to / from /g' import.sql           
  • 導入資料
在hive目錄/etc/alternatives/hive-conf下添加.hiverc
vi ~/.hiverc
use test;
hive -f import.sql