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

lanxinliuli 发表于 2019/05/25 09:35:39 2019/05/25
【摘要】 1 背景介绍传统的Hadoop和Spark大数据生态,主要是以本地硬盘或云硬盘承载HDFS文件系统进行数据存储,但是存在成本高,扩容难等问题。当前华为云对象存储服务OBS可以与Hadoop和Spark大数据生态进行对接,为用户提供计算存储分离的大数据解决方案。为了实现用户数据平滑上云,可以采用华为云CDM服务进行HDFS到OBS的数据迁移。2 迁移背景和目标已存在集群一采...

1      背景介绍

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

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

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.png

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

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

 

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

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

2.png

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

3.png4.png

备注:集群一的所有节点需配置公网弹性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

5.png

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

6.png

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

7.png

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

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

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

8.png

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。