Hive表的导出与导入

对于需要跨集群迁移Hive表的,只需要迁移表结构的,可以采取从原始集群导出Hive表结构,然后在新集群导入Hive表结构,实现Hive元数据的迁移。

目录

导出所有的hive库

导出库的所有hive表

导出所有hive表的建表语句

处理一下导出的建表语句,比如去掉一些表路径信息等

导入hive表


导出所有的hive库

#!/bin/bash
# 1-export_database.sh

dir="output/database"

if [ ! -d ${dir} ]; then
        mkdir -p ${dir}
fi
beeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showHeader=false -e "show databases" > ${dir}/databases.txt

导出库的所有hive表

#!/bin/bash
# 2-export_table.sh
for database in `cat output/database/databases.txt`
do
dir="output/table"
if [ ! -d ${dir} ]; then
        mkdir -p ${dir}
fi

beeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showHeader=false -e "use ${database}; show tables" > ${dir}/${database}_tables.txt
sed -i "s|^|${database}.|g" ${dir}/${database}_tables.txt
done

导出所有hive表的建表语句

#!/bin/bash
# 3-export_create_table.sh
for database in `cat output/database/databases.txt`
do
dir="output/create/${database}"
if [ ! -d ${dir} ]; then
        mkdir -p ${dir}
fi
    for tablename in `cat output/table/${database}_tables.txt`
    do
    beeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showHeader=false -e "show create table ${tablename}" > ${dir}/${tablename}.txt
    done
done

处理一下导出的建表语句,比如去掉一些表路径信息等

#!/bin/bash
# 4-sed_table.sh
for database in `cat output/database/databases.txt`
do
    for tablename in `ls output/create/${database}/*.txt`
    do
    sed -i 's/CREATE EXTERNAL TABLE/CREATE TABLE/g' ${tablename} 
    sed -i '/LOCATION/,$d' ${tablename}
    done
done

导入hive表

#!/bin/bash
# 5-load_table.sh
for database in `cat output/database/databases.txt`
do
    for tablename in `ls output/create/${database}/*.txt`
    do
    echo "load ${tablename}"
    beeline -u 'jdbc:hive2://hive01:10000/default' --silent=true --outputformat=tsv2 --showHeader=false -f ${tablename}
    echo ""
    done
done
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值