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,导出时会锁定所有表,如果不锁表,一边导出一边录入数据,会出问题
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
有以下几种方法可以从一个Hive集群迁移数据到另外一个集群: 1. 使用Hadoop命令行工具将数据从一个HDFS集群复制到另一个HDFS集群。首先,您需要在源集群中使用Hadoop命令行工具将数据从HDFS中导出到本地文件系统。然后,将数据上传到目标集群中的HDFS。最后,在目标集群上使用Hive命令行工具将数据加载到目标集群Hive中。 2. 使用Sqoop将数据从一个RDBMS中导出并加载到另一个RDBMS中。Sqoop是一个用于在Hadoop和关系数据库之间传输数据的开源工具。您可以使用Sqoop将数据从源RDBMS中导出为CSV文件,然后将文件上传到目标集群中,并将数据加载到目标RDBMS中。 3. 使用Hive的复制表功能将数据从源集群中的Hive复制到目标集群中的Hive。在源集群中,您可以使用Hive的CREATE TABLE语句创建一个新表,并使用INSERT INTO语句将数据从旧表中复制到新表中。然后,在目标集群上使用Hive的CREATE TABLE语句创建一个新表,该表与源集群中的新表具有相同的结构。最后,在目标集群上使用INSERT INTO语句从源集群中的新表中复制数据到目标集群中的新表中。 4. 使用Hive的导出功能将数据从源集群中的Hive导出为CSV文件,然后将文件上传到目标集群中,并使用Hive的导入功能将数据加载到目标集群中的Hive中。在源集群中,您可以使用Hive的INSERT OVERWRITE语句将数据导出为CSV文件。然后,将文件上传到目标集群中,并使用Hive的LOAD DATA语句将数据加载到目标集群中的Hive中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

訾零

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

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

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

打赏作者

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

抵扣说明:

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

余额充值