
# 使用CDM服务迁移Hadoop数据至MRS集群
#### 应用场景
云数据迁移（Cloud Data Migration，简称CDM），是一种高效、易用的批量数据迁移服务。 CDM围绕大数据迁移上云和智能数据湖解决方案，提供了简单易用的迁移能力和多种数据源到数据湖的集成能力，降低了客户数据源迁移和集成的复杂性，有效地提高您数据迁移和集成的效率。
本章节适用于将线下IDC机房或者公有云Hadoop集群中的数据（支持数据量在几十TB级别或以下的数据量级）迁移到华为云MRS服务。
#### 方案架构
图1Hadoop数据迁移方案
![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002406121141.png "点击放大")
CDM支持全量迁移和增量迁移文件，全量迁移通过文件复制完成，将策略配置为"跳过重复文件"可实现增量文件迁移。
- **全量迁移**
  - 在CDM上新建两个连接，连接源集群的HDFS和华为云MRS的HDFS或OBS文件系统。
  
  - 创建CDM全量迁移作业，配置源端和目的端的参数，并启动作业。
   
- **增量迁移**
  - 再次在CDM中建立迁移作业，在配置目标端的参数时，选择重复文件的处理方式为"跳过重复文件"。
  
  - 启动迁移作业。
   
使用CDM服务迁移Hadoop数据至MRS集群流程如下：
图2迁移流程   
![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002405978329.png "点击放大")
#### 方案优势
- 简单易用：免编程，向导式任务开发界面，通过简单配置几分钟即可完成迁移任务开发。
- 迁移效率高： 基于分布式计算框架进行数据任务执行和数据传输优化，并针对特定数据源写入做了专项优化，迁移效率高。
- 实时监控：迁移过程中可以执行自动实时监控、告警和通知操作。
 
#### 对系统影响
- 在迁移过程中，源端HDFS文件的更改未能及时同步到目标集群，可能导致数据不一致。 可以使用校验工具识别不一致数据，进行重迁或者补数。
  
- 迁移操作可能导致源端集群性能下降，影响源端业务的响应时间。建议在业务空闲时进行数据迁移，并在源端集群上合理配置资源，包括计算、存储和网络，确保其能承受迁移负载。
 
#### 迁移调研
迁移HDFS数据前需要对源端HDFS组件进行调研，以便评估产品兼容性、迁移过程中可能会产生的风险、对系统的影响等，具体请参考[表1]。
 表1迁移调研 
| **序号** | 调研项目  | **调研问题**                                   |
|:---|:---|:---|
| 1      | 版本兼容性 | HDFS集群版本。                                  |
| 2      | 总容量   | 用户需要存储的总容量（会乘以副本数作为磁盘总容量的规划）。              |
| 3      | 总数据量  | HDFS处理的总数据量。                               |
| 4      | 文件数   | 存储到HDFS上的文件总数量。                            |
| 5      | 副本数   | 副本数，系统默认是3，如果用户有特殊需求，可以变更副本数。              |
| 6      | 小文件占比 | 大小文件的大致分布概率（即小文件的百分比、大文件的百分比，小于128M的为小文件）。 |
| 7      | 读写次数  | 峰值每秒读/写次数（单节点读11k/s，写3k/s）。                |
| 8      | 吞吐量   | 峰值每秒读/写吞吐量（每节点100MB/S）。                    |
   
#### 网络方案
迁移方案支持各种网络选型：公网、VPN、专线等。根据实际情况选择网络方案，两端网络分别与CDM互通即可迁移。
表2网络方案 
| **迁移网络类型** | **优点**                                                                                                                                                                                                                                                                                                                                                                 | **缺点**                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| 专线         | - 性能稳定:时延低至毫秒级。  - 带宽选择范围可达几十Gbit/s。  - 数据传输安全性高。                                                                                            | - 成本高：一般是包年包月。  - 源端和目的端私网IP地址不能重叠。  - 开通时间长：一般需提前1个月申请。   |
| VPN        | - 组网灵活，随时搭建。  - 稳定性较好，安全性较好。  - 成本适中：公网费用+VPN费用。                                                                                               | - 时延较高。  - 源端和目的端私网IP地址不能重叠。                                                                                    |
| 公网IP       | - 支持源端和目的端私网IP一致的情况下实施迁移。  - 带宽任意选择（Mbit/s\~Gbit/s）。  - 即买即用，快速绑定。  - 成本低。   | - 稳定性差：带宽可能无法全部利用，迁移速率相对较慢。  - 公网传输数据有泄漏风险。                                                                       |
   
#### 约束与限制
- 搬迁数据量较大时，对网络通信要求较高，执行搬迁任务时，可能会影响其他业务，建议在业务空闲期进行数据迁移任务。
- CDM迁移方式无法迁移文件的属性，例如owner、ACL、checksum信息。
- 本章节以通过[华为云CDM服务](https://support.huaweicloud.com/productdesc-cdm/cdm_01_0143.html) 2.9.2.200版本进行数据迁移为例介绍。不同版本操作可能有差异，具体操作详情以实际版本对应的操作指导为准。
- **CDM服务支持迁移的数据源可参考[支持的数据源](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0157.html)，数据源为Apache HDFS时，建议使用的版本为2.8.X、3.1.X，请执行搬迁前务必确认是否支持搬迁。**
 
#### 步骤1：新建数据连接
1. 登录CDM管理控制台。
2. [创建CDM集群](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0018.html)，该CDM集群的安全组、虚拟私有云、子网需要和迁移目的端集群保持一致，保证CDM集群和MRS集群之间网络互通。
3. 在"集群管理"页面单击待操作集群对应"操作"列的"作业管理"。
4. 在"连接管理"页签，单击"新建连接"。
5. 参考[CDM服务的新建连接](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0023.html)页面，分别添加到迁移源端集群和迁移目的端集群的两个HDFS连接。
   
   连接类型根据实际集群来选择，如果是MRS集群，连接器类型可以选择"MRS HDFS"，如果是自建集群可以选择"Apache HDFS"。
   图3HDFS连接   
   ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002389828061.png "点击放大")
   
   
 
#### 步骤2：新建迁移作业
1. 在"表/文件迁移" 页签，单击"新建作业"。
2. 选择源连接、目的连接： 
   - 作业名称：用户自定义任务名称，名称由英文字母、下划线或者数字组成，长度必须在1到256个字符之间。
   
   - 源连接名称：选择迁移源端集群的HDFS连接，作业运行时将从此端复制导出数据。
   
   - 目的连接名称：选择迁移目的端集群的HDFS连接，作业运行时会将数据导入此端。
   
   
   
   
3. 请参见[配置HDFS源端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0036.html)配置源端连接的作业参数，需要迁移的文件夹可通过"目录过滤器"和"文件过滤器"参数设置符合规则的目录和文件进行迁移。
   
   ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 如果使用CDM进行**全量数据迁移**，在"目的端作业配置"中的参数"重复文件处理方式"选择"替换重复文件"。
   
   - 如果使用CDM进行**增量数据迁移**，在"目的端作业配置"中的参数"重复文件处理方式"选择"跳过重复文件"。
    
   例如迁移匹配"/user/test\*"文件夹下文件，该场景下"文件格式"固定为"二进制格式"。
   图4配置作业参数   
   ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002356227920.png "点击放大")
   
   
4. 请参见[配置HDFS目的端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0045.html)配置目的端连接的作业参数。
5. 单击"下一步"进入任务配置页面。 
   - 如需定期将新增数据迁移至目的端集群，可在该页面进行配置，也可在任务执行后再参考[步骤 3]配置定时任务。
   
   - 如无新增数据需要后续定期迁移，则跳过该页面配置直接单击"保存"回到作业管理界面。
     图5任务配置   
     ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002356068000.png "点击放大") 
   
   
   
   
6. 选择"作业管理"的"表/文件迁移"页签，在待运行作业的"操作"列单击"运行"，即可开始HDFS文件数据迁移，并等待作业运行完成。
 
#### 步骤3：检查迁移后的文件信息
1. 使用客户端安装用户登录迁移目的端集群客户端节点。
2. 执行如下命令查看迁移目的端集群中已迁移的文件。 
   ```
   cd 客户端安装目录
   ```
   执行以下命令加载环境变量：
   ```
   source bigdata_env
   ```
   如果集群已启用Kerberos认证（安全模式），执行以下命令进行用户认证。集群未启用Kerberos认证（普通模式）无需执行用户认证。
   ```
   kinit 组件业务用户
   ```
   ```
   hdfs dfs -ls -h /user/
   ```
   
   
3. （可选）如果源端集群中有新增数据需要定期将新增数据迁移至目的端集群，则配置定期任务增量迁移数据，直到所有业务迁移至目的端集群。
   
   1. 在CDM集群中选择"作业管理"的"表/文件迁移"页签。
   
   2. 在迁移作业的"操作"列选择"更多 \> 配置定时任务"。
   
   3. 开启定时执行功能，根据具体业务需求设置重复周期，并设置有效期的结束时间为所有业务割接到新集群之后的时间。
      图6配置定时任务   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002389787965.png "点击放大") 
   
   
   
   
 
#### 常见问题
迁移HDFS文件，无法获取块，具体请参考[迁移HDFS文件，报错无法获取块怎么处理？](https://support.huaweicloud.com/cdm_faq/cdm_01_1159.html)
