本文以Hive数据迁移至MaxCompute为例,为您介绍如何配置MMA。

前提条件

在配置MMA之前需完成以下准备工作:
  • 已下载并安装与Hive版本对应的MMA工具。MMA工具获取途径请参见MMA安装包
    说明 本文示例对应的MMA版本为v0.1.0,对应的安装包为mma-0.1.0-hive-1.x.zip。
  • 已安装JDK1.8及以上版本。
  • MaxCompute项目已配置2.0数据类型版本。详情请参见2.0数据类型版本
  • Hive集群各个节点和MaxCompute服务所在地域保持网络连通。

    对于在阿里云上搭建的Hive集群或到阿里云有专线的Hive集群场景,请参考各地域Endpoint对照表(阿里云VPC网络连接方式);其他场景,请参考各地域Endpoint对照表(外网连接方式)

    说明 专线场景路由配置说明:

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

配置MMA

  1. 进入MMA解压目录,在bin目录下,执行如下命令运行配置引导脚本configure
    ./configure
  2. Hive configurations配置。配置参数如下表所示:
    参数名 参数说明 参数示例
    Hive metastore URI(s) hive-site.xml中hive.metastore.uris属性值。 thrift://hostname:9083
    Hive JDBC连接串 通过beeline使用Hive时输入的JDBC连接串,必须为default库,前缀为jdbc:hive2 jdbc:hive2://hostname:10000/default
    Hive JDBC连接用户名 通过beeline使用Hive时输入的JDBC连接用户名,默认值为Hive。 Hive
    Hive JDBC连接密码 通过beeline使用Hive时输入的JDBC连接密码,默认值为空。
  3. (可选)Hive security configurations配置。
    在使用Kerberos的情况下,配置过程需要提供以下Hive Security参数。配置参数如下表所示:
    参数名 参数说明 参数示例
    jams-gss.conf文件路径 MMA解压后,conf目录下的gss-jaas.conf.template文件路径。
    krb5.conf文件路径 通过Hive下的 etc目录获取。
    Kerberos principal属性 Hive目录下hive-site.xml中hive.metastore.kerberos.principal的属性值。 hive/_HOST@EXAMPLE.com
    Kerberos keytab文件路径 Hive目录下hive-site-xml中的hive.metastore.kerberos.keytab.file的属性值。
  4. MaxCompute configurations配置。配置参数如下表所示:
    参数名 参数说明
    MaxCompute endpoint MaxCompute服务所在地域的Endpoint。各地域及网络对应的Endpoint,请参见Endpoint
    MaxCompute project名 MaxCompute的项目名称。
    您可以登录MaxCompute控制台,在项目管理页签获取MaxCompute项目名称。
    说明 建议配置为目标MaxCompute项目,规避权限问题。
    阿里云accesskey id 阿里云账号或RAM用户的AccessKey ID。

    您可以进入AccessKey管理页面获取AccessKey ID。

    阿里云accesskey secret AccessKey ID对应的AccessKey Secret。

    您可以进入AccessKey管理页面获取AccessKey Secret。

    说明 Hive configurationsMaxCompute configurations配置完成后,conf目录下即可生成mma_client_config.jsonmma_server_config.json配置文件。
  5. 创建数据传输所需要的Hive UDTF。
    • 上传Hive UDTF JAR包至HDFS。命令如下:
      hdfs dfs -put -f <MMA_HOME>/lib/data-transfer-hive-udtf-0.1.0-jar-with-dependencies.jar hdfs:///tmp/

      MMA_HOME:MMA解压后的根目录。

    • 使用beeline创建Hive永久函数。命令如下:
      DROP FUNCTION IF EXISTS default.odps_data_dump_multi;
      CREATE FUNCTION default.odps_data_dump_multi as 'com.aliyun.odps.mma.io.McDataTransmissionUDTF' USING JAR 'hdfs:///tmp/data-transfer-hive-udtf-0.1.0-jar-with-dependencies.jar';
  6. 创建完成Hive UDTF后,输入Y即可完成所有配置。