Hive跨集群和版本迁移

公司重新搭建CDH6.0.1,并把旧集群Hive1.1迁移新集群Hive2.1,记录一下过程。

步骤:

目录

步骤:

1. 迁移Hive数据和MySQL中的matastore

1. 迁移Hive数据至新集群,在新集群上执行

2. 在源集群上MySQL导出Hive metastore

3. 在新集群使用Hive用户导入metastore

4. 升级Hive库

5. 修改metastore的集群信息

2.  export / import + distcp

1. 导出Hive数据到HDFS

2. 拷贝导出的Hive数据到新集群

3. 修改导出脚本为导入脚本

4. 上传导入脚本后在新集群执行


 

1. 迁移Hive数据和MySQL中的matastore

通过DistCp拷贝Hive数据到新集群,并从MySQL中导出Hive的元数据上传到新集群,最后在新集群MySQL中导入Hive元数据,并更新Hive版本,修改信息。

 

1. 迁移Hive数据至新集群,在新集群上执行

版本差异不大,使用hdfs

hadoop distcp -skipcrccheck -update hdfs://hadoop-master:8020/user/hive/* \
hdfs://cdh-master:8020/user/hive

#-update 如果新集群目标目录已经存在,替换差异文件,不存在则不用这个参数。
#-skipcrccheck -update 忽略crc检查,hadoop版本相同则不需要,-skipcrccheck必须与-update同时使用才能生效。

版本差异大,使用htfp

hadoop distcp -skipcrccheck -update htfp://hadoop-master:50070/user/hive/* \
hdfs://cdh-master:8020/user/hive

#因为从Hadoop2.6迁移到Hadoop3.0版本,使用hftp方式。
#源集群的格式是 hftp://<dfs.http.address>/<path> ,默认设置dfs.http.address是 <namenode>:50070。
#新的webhdfs协议代替了hftp后,源地址和目标地址都可以使用http协议webhdfs,可以完全兼容 。

hadoop distcp -skipcrccheck -update webhdfs://hadoop-master:50070/user/hive/* \
webhdfs://cdh-master:50070/user/hive

2. 在源集群上MySQL导出Hive metastore

mysqldump -uroot -p123456 --databases hive > mysql_hive.sql

#--skip-lock-tables,导出时会锁定所有表,如果不锁表,一边导出一边录入数据,会出问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值