2025年迁移老集群的Hive表结构和数据到新集群中

迁移老集群的Hive表结构和数据到新集群中总体思路 1 从旧集群中导出表结构 库和表众多的情况下 使用 shell 脚本批量导出 2 从旧集群导出的 sql 建表语句做一些修改 在新集群中执行即可 3 使用 distcp 命令复制数据文件 需要指定 hive 表的路径 4 验证是否数据是否迁移成功 可以到 hdfs 网页查看和在 hive 库中查看

大家好,我是讯享网,很高兴认识大家。

总体思路:

1、从旧集群中导出表结构,库和表众多的情况下,使用shell脚本批量导出

2、从旧集群导出的sql建表语句做一些修改,在新集群中执行即可

3、使用distcp命令复制数据文件,需要指定hive表的路径

4、验证是否数据是否迁移成功,可以到hdfs网页查看和在hive库中查看

 

一、导出表结构

1、首先在hive中执行 show databases;

2、把需要导出的hive库都准备好,然后修改下面的命令,导出某个库里的所有表名到文件中

hive -e "use mxsj;show tables;" > tables.txt

讯享网

3、修改下面的脚本,下面的脚本是把某库中的所有表结构导出到文件中,把脚本内容写到一个文件exporttab.sh中

讯享网#!/bin/bash cat trajx_tables.txt |while read eachline do hive -e "use trajx;show create table $eachline" >>trajx_tablesDDL.txt echo ";" >> trajx_tablesDDL.txt done  

二、在新集群中导入表结构

把导出的trajx_tablesDDL.txt文件scp 到新集群的服务器上

需要用vim修改一下文件内容,在开头增加建库语句和use语句

如下:


讯享网

create database mxsj; use mxsj;

以及注释掉无用行,否则执行会报错

讯享网sed -i 's/WARN/--WARN/g' /root/trajx_tablesDDL.txt

最后执行导入

hive -f trajx_tableDDL.txt

 

三、复制数据到新集群

在新集群的主节点上执行如下命令

讯享网hadoop distcp hdfs://老集群主节点ip:8020/user/hive/warehouse/trajx.db/adm_gj_wp_ds hdfs://新集群主节点ip:8020/user/hive/warehouse/trajx.db 

每次需要修改hive库和表,目的地不需要写表名,否则会在表名下面建子文件夹。

 

四、验证数据是否可查

在hive中查看数据

select * from xxx limit 10;

如果是分区表需要执行分区修复,否则无法查到数据

MSCK REPAIR TABLE xxx;

 

小讯
上一篇 2025-01-25 11:44
下一篇 2025-03-28 17:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65108.html