环境与需求
集群环境
华为FushionInsight A
华为FushionInsight B
华为集群管理机 local
Hive 3.1.0
HDFS 3.3.1
需求描述
从华为A
集群中将我们的数据迁移到华为B
集群,其中数据经过华为集群管理机local
跳转。
数据样例:分区表 外部表 .parquet压缩
操作步骤
STEP 1
记下表所在华为A集群的HDFS位置,使用命令desc formatted 'tablename';
获取,如'hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename'
。
记下建表语句,使用命令show create table 'tablename;'
STEP 2
查看表在华为A集群的HDFS占用空间,使用命令hdfs dfs -du -h 'hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename'
,稍后将表大小记录,并判断存储是否满足要求。
STEP 3
STEP 2条件满足,使用命令hdfs dfs -get '粘贴在STEP 1中复制的位置'
,将表完整内容get到本地管理机local。
此时如果表存储过大,我们根据要迁移的表的分区进行get操作也可以,将对应分区名跟在位置后,如'hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename/2023'
,一般表示2023年的分区。
STEP 4
在华为B集群中创建迁移的表,STEP 1中我们已经拿到了建表语句,需要修改位置:'hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename'
,请修改位置为默认Hive默认数据库的位置。
STEP 5
将STEP 3 中的文件put到华为集群B的'hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename/2023'
目录下。
在华为集群B执行hdfs dfs -du -h hdfs://hacluster/user/hive/warehouse/bigdata.db/tablename
,确认数据成功上传。
STEP 6
在建表语句中可以看到分区的字段date
,再执行HQL语句alter table tablename add partition(date='2023')
。