遷移hive表及hive數據


公司hadoop集群遷移,需要遷移所有的表結構及比較重要的表的數據(跨雲服務機房,源廣州機房,目標北京機房)

1、遷移表結構

1)、老hive中導出表結構

hive -e "use db;show tables;" > tables.txt
#!/bin/bash

cat tables.txt |while read eachline
do
hive -e "use klwarehouse;show create table $eachline" >>tablesDDL.txt
echo ";" >> tablesDDL.txt
done  

2)、新hive中導入表結構

hive -f tableDDL.txt

  

對了,執行之前要先建立db,然后在tableDDL.txt前面加上use db;

 

2、遷移表數據

目前使用的方案是一個一個將表數據導出到HDFS,接着下載到雲主機中,壓縮,外網傳到新的hive集群網絡中的主機中,解壓,上傳至HDFS,上傳至HIVE

1)、將HIVE表數據導出至HDFS

hdfs dfs -mkdir /tmp/hive-export

use db; export table 表名 to /tmp/hive-export

  

2)、將HDFS數據下載至主機中

hdfs dfs -get /tmp/hive-export/

 

3)、將數據壓縮

tar -zcvf hivetable1.tar.gz hive-export

  

4)、將數據發送至目標hive集群的內網主機中

scp hivetable1.tar.gz root@x.x.x.x:/data  

 

5)、解壓數據

tar -zxvf hivetable1.tar.gz

 

6)、將數據上傳至HDFS中

hdfs dfs -put hive-export/ /tmp/hive-export

  

7)、將HDFS數據上傳至Hive表中

use db;
import table 表名 from /tmp/hive-export

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM