對於需要跨集群遷移hive表的,只需要遷移表結構的,可以採取從原始集群匯出hive表結構,然後在新集群匯入hive表結構,實現hive元資料的遷移。
目錄
匯出所有的hive庫
匯出庫的所有hive表
匯出所有hive表的建表語句
處理一下匯出的建表語句,比如去掉一些表路徑資訊等
匯入hive表
#!/bin/bash
# 1-export_database.sh
dir="output/database"
if [ ! -d $ ]; then
mkdir -p $
fibeeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showheader=false -e "show databases" > $/databases.txt
#!/bin/bash
# 2-export_table.sh
for database in `cat output/database/databases.txt`
dodir="output/table"
if [ ! -d $ ]; then
mkdir -p $
fibeeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showheader=false -e "use $; show tables" > $/$_tables.txt
sed -i "s|^|$.|g" $/$_tables.txt
done
#!/bin/bash
# 3-export_create_table.sh
for database in `cat output/database/databases.txt`
dodir="output/create/$"
if [ ! -d $ ]; then
mkdir -p $
fi for tablename in `cat output/table/$_tables.txt`
dobeeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showheader=false -e "show create table $" > $/$.txt
done
done
#!/bin/bash
# 4-sed_table.sh
for database in `cat output/database/databases.txt`
do for tablename in `ls output/create/$/*.txt`
dosed -i 's/create external table/create table/g' $
sed -i '/location/,$d' $
done
done
#!/bin/bash
# 5-load_table.sh
for database in `cat output/database/databases.txt`
do for tablename in `ls output/create/$/*.txt`
doecho "load $"
beeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showheader=false -f $
echo ""
done
done
jwldata.com,排版更清晰,閱讀更爽快。
Hive資料匯入與匯出
hive四種資料匯入方式 1 從本地檔案系統中匯入資料到hive表 hive load datalocal inpath mytable.txt into table mytabl 注意 和我們熟悉的關係型資料庫不一樣,hive現在還不支援在insert語句裡面直接給出一組記錄的文字形式,也就是說,...
Hive檔案的匯入與匯出
官方提供兩種匯入資料的方式 1 從現在表中匯入 insert overwrite table tablename select from original tablename 另外一種,對多個表的插入 from tablename1 insert overwrite table tablename2...
Hive內部表與外部表,資料匯入,資料匯出
1,內部表資料由hive自身管理,外部表資料由hdfs管理 2,刪除內部表會直接刪除元資料 metadata 及儲存資料 刪除外部表僅僅會刪除元資料,hdfs上的檔案並不會被刪除 3,內部表資料儲存的位置是hive.metastore.warehouse.dir 預設 user hive wareh...