本文为您介绍MMA运行前的环境准备、相关参数配置和迁移数据预处理。

准备运行环境

  • 下载与Hive版本对应的MMA工具。下载方式请提工单获取。
  • MMA所在服务器上需要安装Python 3及以上版本的Python。
  • MMA所服务器上需要安装JDK1.8及以上版本的Java。
  • MMA所在服务器上需要安装Hive客户端,并确保MMA所在服务器能够通过Hive客户端执行Hive SQL。
  • MMA所在服务器能访问Hive Server。
    说明hive-site.xml中查找"hive.metastore.uris"即可获取Hive Metastore URI。
  • 确保Hive集群和MMA所在机器与MaxCompute服务所在Region保持网络连通。
    说明 专线场景路由配置说明

    例如,本地IDC通过专线访问MaxCompute的Endpoint,需要在边界路由器(VBR)中将100.64.0.0/10网段的路由条目指向VPC方向的路由器接口,并在本地数据中心的网关设备上将100.64.0.0/10网段的路由指向VBR的阿里云侧互联IP,详情请参见本地IDC通过专线访问云服务器ECS

  • 确认Hive Metastore是否有安全配置。

    请准备一个有权限访问Hive Metastore服务和执行Hive SQL的用户在hive-site.xml中查看"hive.security.authorization.enabled"的值。如果值为True,请参见基于Kerberos身份认证的数据迁移方法进行数据迁移;如果值为False,请参见一键迁移使用命令说明进行数据迁移。

配置相关参数

  • 配置MaxCompute连接参数
    odps-data-carrer/odps_config.ini中配置MaxCompute相关参数,如下所示。
    # 不可以直接复制odpscmd的配置文件。
    project_name=
    access_id=
    access_key=
    end_point=
  • 配置OSS连接参数
    odps-data-carrer/oss_config.ini中配置OSS相关参数,如下所示。
    end_point=oss://oss-cn-beijing-internal.aliyuncs.com
    bucket=bucket_name
  • 准备Hive到MaxCompute表的映射文件
    运行MMA之前,需要梳理待迁移的表,形成从Hive表到MaxCompute表的映射关系,格式如下。
    <hive db>.<hive table>:<maxcompute project>.<maxcompute table>
    示例如下。
    dma_demo.catalog_sales:ODPS_DATA_CARRIER_TEST.catalog_sales
    dma_demo.inventory:ODPS_DATA_CARRIER_TEST.inventory
    dma_demo.store_sales:ODPS_DATA_CARRIER_TEST.store_sales
    dma_demo.test_partition:ODPS_DATA_CARRIER_TEST.test_partition
    dma_demo.web_sales:ODPS_DATA_CARRIER_TEST.web_sales

准备待迁移数据

您可以通过如下方法对待迁移数据进行预处理,可以提升迁移效率、提升数据进入MaxCompute后的查询效率以及提前发现并解决MaxCompute与Hive的不兼容问题。
  • 分区合并

    尽可能减少分区数,可以加速迁移。例如,7TB非分区表迁移用时15分钟,而30GB、3万分区表迁移用时为1小时。

  • 类型转换
    • MaxCompute在数据类型上与Hive存在不完全兼容的情况,例如,String类型不支持超8MB。
    • MMA会自动进行类型转换。例如,Hive上的Date类型分区字段,在MaxCompute中会自动转换成String类型分区字段。
    • 参见查看迁移评估报告,进行兼容预处理,规避迁移风险。
    说明 MMA默认会打开新类型,即set odps.sql.type.system.odps2=true; ,以2.0新类型来创建表,详情请参见数据类型
  • 使用闪电立方从HDFS上传数据到OSS时,存储路径格式为oss://bucket_name/database_name/table_name/partition_name/