
# 迁移
#### 数据迁移
1. **Hadoop数据迁移到华为云MRS服务**
   如图所示，将IDC机房或者其他公有云的Hadoop集群中的数据迁移到华为云MRS服务。详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0029.html)。
   图1Hadoop数据迁移   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002142361330.png "点击放大") 
2. **HBase数据迁移到华为云MRS服务**
   将IDC机房或其他公有云的HBase集群中的数据迁移到华为云MRS服务。HBase会把数据存储在HDFS上，主要包括HFile文件和WAL文件，由配置项"hbase.rootdir"指定在HDFS上的路径，华为云MRS的默认存储位置是"/hbase"文件夹下。HBase自带的一些机制和工具命令也可以实现数据搬迁，例如：通过导出Snapshots快照、Export/Import、CopyTable方式等，可以参考Apache官网相关内容。
   也可以使用华为云CDM云迁移服务进行HBase数据搬迁，详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0030.html)。
   图2HBase数据迁移   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002177562373.png "点击放大") 
3. **Hive数据迁移到华为云MRS服务**
   使用华为云CDM服务可以很方便将IDC机房或者其他公有云Hive集群中的数据迁移到华为云MRS服务。
   详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0031.html)。
   图3Hive元数据迁移   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002177520765.png "点击放大") 
4. **使用BulkLoad向HBase中批量导入数据**
   企业经常面临向HBase中导入大量数据的情景，向HBase中批量加载数据的方式有很多种，最直接方式是调用HBase的API使用put方法插入数据；另外一种是用MapReduce的方式从HDFS上加载数据。但是这两种方式效率都不是很高，因为HBase频繁进行flush、compact、split操作需要消耗较大的CPU和网络资源，并且RegionServer压力也比较大。使用华为云MRS服务时，推荐的方法是使用BulkLoad方式向HBase中批量导入本地数据，在首次数据加载时，能极大的提高写入效率，并降低对Region Server节点的写入压力。
   详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0033.html)。
   
5. **MySQL数据迁移到MRS集群Hive分区表**
   Hive的分区使用HDFS的子目录功能实现，每一个子目录包含了分区对应的列名和每一列的值。当分区很多时，会有很多HDFS子目录，如果不依赖工具，将外部数据加载到Hive表各分区不是一件容易的事情。云数据迁移服务（CDM）可以轻松将外部数据源（关系数据库、对象存储服务、文件系统服务等）加载到Hive分区表。
   详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0047.html)。
   
6. **MRS HDFS数据迁移到OBS**
   CDM支持将MRS HDFS的数据迁移到OBS，详细操作指导请参考[MRS帮助文档](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0048.html)。
   
7. **任务迁移**
   大数据任务迁移是指将大数据任务从一个调度平台迁移到另一个调度平台的过程，主要涉及Jar类任务、SQL类任务、脚本类任务，以下简要介绍这三类任务的迁移实施方法。
   
8. **Jar类任务迁移**
   迁移Jar类任务需要深入了解源端任务的源代码和依赖库，重新编译代码以生成适用于云环境的可执行Jar文件，并进行充分的验证和调优。可以参考以下步骤进行：
   图4Jar类任务迁移流程   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002142203286.png "点击放大")
   前提：Jar类任务调试依赖的数据已完成迁移，迁移方法请参考前面的数据迁移部分的内容。
   1. 根据云上大数据资源配置，修改源代码，例如版本、依赖库、数据库连接串，以及本地开发环境的库依赖配置等。
   
   2. 编译源代码，生成云上环境可执行的Jar包。
   
   3. 上传Jar包，并在任务调度平台部署和配置Jar包。
   
   4. 执行调度任务，并根据日志检查任务执行状态和结果。
   
   5. 如果任务执行不符合预期，例如执行时间过长，需要查找根因并进行优化和验证。
   
   6. 按业务需要的时间配置调度任务。
   
   
   您如果使用华为云的[DataArts Studio](https://www.huaweicloud.com/product/mrs.html)作为大数据任务调度平台，可以参考[DataArts Studio帮助文档](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1824.html)进行Jar作业的配置。
   
9. **SQL类任务迁移**
   迁移SQL类任务时，主要工作是对SQL脚本进行适配改造，可参考如下步骤：
   图5SQL类任务迁移流程   
   ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002142361334.png "点击放大")
   前提：SQL类任务调试依赖的数据已完成迁移，迁移方法请参考前面的数据迁移部分的内容。
   1. 源端SQL脚本导出：从源端任务调度平台导出SQL脚本。
   
   2. 修改SQL脚本：根据云上调度平台的语法及资源配置修改SQL脚本。
   
   3. 目标云平台导入SQL脚本：在云上任务调度平台配置SQL类任务，导入SQL脚本。
   
   4. SQL任务运行和测试：执行SQL调度任务，通过日志和运行结果检查任务运行情况。
   
   5. SQL任务调优：如果任务执行不符合预期，例如执行时间过长，需要查找根因并进行优化和验证。
   
   6. SQL任务发布：按业务需要的时间配置调度任务，配置正确的任务依赖关系。
   
   
   您如果使用华为云的[DataArts Studio](https://www.huaweicloud.com/product/mrs.html)作为大数据任务调度平台，可以参考[DataArts Studio帮助文档](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0422.html)进行SQL作业的开发和配置。
   
10. **脚本类任务（Python、Shell等）迁移**
    迁移脚本类任务时，同样面临云上环境适配问题，可以参考如下步骤进行：
    图6脚本类任务迁移流程   
    ![](https://support.huaweicloud.com/usermanual-caf/zh-cn_image_0000002177562377.png "点击放大")
    前提：脚本类任务调试依赖的数据已完成迁移，迁移方法请参考前面的数据迁移部分的内容。
    1. 源端脚本导出：从源端调度平台拷贝调度任务的可执行脚本。
    
    2. 修改脚本：根据云上环境配置，修改脚本，例如数据库连接串，资源配置，输出目录等。
    
    3. 目标云平台导入脚本：上传脚本到云上调度平台，并配置脚本类调度任务。
    
    4. 脚本任务运行和测试：执行调度任务，并根据日志和执行结果检查脚本运行情况。
    
    5. 脚本任务调优：如果任务执行不符合预期，例如执行时间过长，需要查找根因并进行优化和验证。
    
    6. 脚本任务发布：按业务需要的时间配置调度任务，配置正确的任务依赖关系。
    
    
    您如果使用华为云的[DataArts Studio](https://www.huaweicloud.com/product/mrs.html)作为大数据任务调度平台，可以参考[DataArts Studio帮助文档](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0422.html)进行Shell脚本和Python脚本的开发和配置。
    
 
