采用CDM进行HDFS到OBS的数据迁移

网友投稿 537 2022-05-28

1      背景介绍

传统的Hadoop和Spark大数据生态,主要是以本地硬盘或云硬盘承载HDFS文件系统进行数据存储,但是存在成本高,扩容难等问题。

当前华为云对象存储服务OBS可以与Hadoop和Spark大数据生态进行对接,为用户提供计算存储分离的大数据解决方案。为了实现用户数据平滑上云,可以采用华为云CDM服务进行HDFS到OBS的数据迁移。

2      迁移背景和目标

已存在集群一采用EVS存储HDFS格式数据,新建集群二采用OBS存储数据,需要将数据从集群一的HDFS迁移至集群二的OBS。

3      迁移方法

1、已搭建集群一(北京一)和集群二(华东),集群一采用EVS存储数据,集群二采用OBS存储数据

2、在集群一构造Spark或者Hive的数据,例如,构造Hive表数据如下

(1)创建DATABASE

CREATE DATABASE top_ods;

(2)创建TABLE

CREATE TABLE `top_ods.claim_6yue_pt`(

`user_id` varchar(300),

`ese_id` int,

`task_id` varchar(100))

partitioned by (tagdate int)

ROW FORMAT DELIMITED FIELDS TERMINATED BY "|"

STORED AS parquetfile

TBLPROPERTIES ("orc.compression"="Snappy");

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '10' ,10,'10');

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '11' ,11,'11');

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '12' ,12,'12');

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '13' ,13,'13');

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '14' ,14,'14');

insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '15' ,15,'15');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '20' ,20,'20');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '21' ,21,'21');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '22' ,22,'22');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '23' ,23,'23');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '24' ,24,'24');

insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '25' ,25,'25');

select * from top_ods.claim_6yue_pt;

3、在集群二创建Spark或者Hive的新表,新表格式与源表的存储格式等属性要一致

(1)创建DATABASE

CREATE DATABASE top_odstest location 'obs://obs-bigdata-hd-003/user/hive/warehouse/top_ods.db';

(2)创建TABLE,新表格式与源表的存储格式等属性要一致

CREATE TABLE `top_odstest.claim_6yue_pt`(

`user_id` varchar(300),

`ese_id` int,

`task_id` varchar(100))

partitioned by (tagdate int)

ROW FORMAT DELIMITED FIELDS TERMINATED BY "|"

STORED AS parquetfile

采用CDM进行HDFS到OBS的数据迁移

TBLPROPERTIES ("orc.compression"="Snappy");

4、创建CDM任务,将集群一的HDFS数据迁移至集群二的OBS

(1)创建CDM集群(华东),跨Region需要绑定公网弹性IP

(2)配置连接管理,一个连接使用Apache HDFS,另一个连接使用对象存储服务(OBS)

备注:集群一的所有节点需配置公网弹性IP,并且Apache HDFS连接中的IP与主机名映射要填写所有集群一的主机

XX.XX.XX.XX ecs-bigdata-hdtest-0000.novalocal

XX.XX.XX.XX ecs-bigdata-hdtest-0001.novalocal

XX.XX.XX.XX ecs-bigdata-hdtest-0002.novalocal

XX.XX.XX.XX ecs-bigdata-hdtest-0003.novalocal

(3)配置作业管理,源连接使用HDFS连接,目标连接使用OBS连接,文件格式使用二进制格式

(4)配置完成后,运行作业进行数据迁移

5、迁移完成后,在集群二恢复Hive表数据,即可查询数据成功。

恢复Hive表数据:MSCK REPAIR TABLE top_odstest.claim_6yue_pt;

查询Hive表数据:select * from top_odstest.claim_6yue_pt;

OBS 大数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:利用QEMU+GDB搭建Linux内核调试环境
下一篇:构建升华:现代计算架构正在发生变化的四种方式
相关文章