Hive表的匯出與匯入

2021-10-09 16:38:07 字數 2115 閱讀 2022

對於需要跨集群遷移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...