hive数据迁移 从apache2.x迁移到cdh hive 1.x

迁移背景:

1、hive有30多个库,最大的库有100多张表,这中情况下必须采用 脚本式 迁移

2、2个hive版本不一致,元数据mysql表结构不一致,不能采用mysql数据库覆盖方式

3、hive数据仓库只迁移一部分,另外一部分后续迁移,不能采用mysql数据库覆盖方式

4.  2个集群暂时未开启权限认证

迁移流程:

1.apache集群导出元数据

#导出hive数据库test,脚本的grep -V为了去除导出脚本的警告语句

#/bin/bash
database=test
datalocalpath=/home/dip/test
for tab in `hive -e "use $database;show tables" |grep -v WARN`
do
hive -e  "show create table $database.$tab" |grep -V WARN > $datalocalpath/$tab.sql
done

2.cdh集群导入元数据

 注意,如果2个集群数据仓库存储目录不一致,需要修改导出的sql脚本 主要修改以下位置

LOCATION
'hdfs://nameservice/user/hive/warehouse/test.db/word'

新集群先建立数据库test
create database test;

test库导入数据

#/bin/bash   
datalocalpath=/home/dip/test
for  tab in `ls $datalocalpath`
do
hive -f $datalocalpath/$tab
done

3.hdfs数据迁移(cdh的namenode端口8020)

hadoop distcp -update /hive/warehouse/test.db hdfs://198.2.120.31:8020/user/hive/warehouse/test.db/

4.修复表分区

for tab in `hive -e "use test;show tables" |grep -v WARN` ;do MSCK PEPAIR TABLE test.$tab ;done

#这里的数据库只有一级分区,如果有多层分区参考
# https://blog.csdn.net/gyxinguan/article/details/79979308

 

转载于:https://www.cnblogs.com/students/p/11236559.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值