本文为您介绍MMA2.0的安装以及相关配置文件的准备。

解压工具包

执行如下命令解压工具包。 工具包请提工单获取。
tar vxzf odps-data-carrier.tar.gz
解压之后,MMA2.0目录结构如下。**

准备配置文件

  • odp_config.ini
    project_name= /* MaxCompute的项目名称 */
    access_id=/* 阿里云账号的AccessKey ID */
    access_key=/* 阿里云账号的AccessKey Secret */
    end_point=/* MaxCompute服务所在地域的Endpoint/
  • hive_config.ini
    jdbc_connection_url=/* Hive JDBC连接串 */
    user=/* Hive JDBC用户名*/
    password=/* Hive JDBC密码*/
    hms_thrift_addr=/* Hive Metastore Service的Thrift地址*/
  • table_mapping文件
    该配置文件包含了待迁移的Hive表与MaxCompute表的对应关系,文件中每一行将会构建一个Hive表到MaxCompute表的迁移任务。格式如下。
    <hive db>.<hive table>:<maxcompute project>.<maxcompute table>
  • MMA Server配置文件
    执行如下命令生成MMA Server配置文件。
    #cd odps-data-carrier/conf/
    #sh ../bin/generate-config ./
    --to_server_config ./
    --hive_config hive_config.ini
    --odps_config odps_config.ini
    示例**
  • MMA Client配置文件
    执行如下命令生成MMA Client配置文件。
    #cd odps-data-carrier/conf/
    #sh ../bin/generate-config ./
    --to_client_config ./
    --hive_config hive_config.ini
    示例**
  • MMA迁移任务配置文件
    MMA2.0支持四种迁移作业模式,您可以根据迁移场景选择合适的迁移模式:
    • 全服务迁移(all databases to one project)
      配置文件模板如下。
      {
        "user": "Jon",
        "globalAdditionalTableConfig": {
          "partitionGroupSize": 100,
          "retryTimesLimit": 3
        },
        "serviceMigrationConfig":
          {
            "destProjectName": "test_project"
          }
      }

      destProjectName为目标MaxCompute项目的名称。

    • 整库迁移(one database to one project)
      配置文件模板如下。
      {
        "user": "Jerry",
        "globalAdditionalTableConfig": {
          "partitionGroupSize": 100,
          "retryTimesLimit": 3
        },
        "databaseMigrationConfigs": [
          {
            "sourceDatabaseName": "test_db",
            "destProjectName": "test_project"
          }
        ]
      }
    • 表级迁移(db.table to project.table)
      表级别的迁移作业可以基于已准备好的table_mapping文件,使用generate-config命令生成配置文件。命令格式如下。
      #cd odps-data-carrier/conf/
      #sh ../bin/generate-config ./
      --to_migration_config ./
      --table_mapping table_mapping.txt
      示例**
    • 分区级迁移(db.table.partition to project.table.partition)
      配置文件模板如下。
      {
        "user": "Jerry",
        "globalAdditionalTableConfig": {
          "partitionGroupSize": 100,
          "retryTimesLimit": 3
        },
        "tableMigrationConfigs": [
          {
            "sourceDataBaseName": "test_db",
            "sourceTableName": "test_partitioned_table",
            "destProjectName": "test_project",
            "destTableName": "test_partitioned_table",
            "partitionValuesList": [
              ["foo", "123456"],
              ["bar", "234567"],
            ]
            "additionalTableConfig": {
              "partitionGroupSize": 100,
              "retryTimesLimit": 3
            }
          }
        ]
      }

      partitionValuesList表示待迁移分区的分区值列表。假设表的分区列为c1 stringc2 bigint,上述模板中partitionValuesList表示的分区即为c1="foo",c2=123456c1="bar",c2=234567

添加函数

上传资源并在Hive客户端Beeline上添加函数。

  1. 执行如下命令上传已经准备好的odps_config.ini配置文件。
    #cd odps-data-carrier/conf/
    #hdfs dfs -put -f odps_config.ini hdfs:///tmp/odps_config.ini
  2. 执行如下命令上传UDTF的JAR包。JAR包为工具包lib目录下的data-transfer-hive-udtf-1.0-SNAPSHOT-jar-with-dependencies.jar
    #cd odps-data-carrier/lib/
    #hdfs dfs -put -f data-transfer-hive-udtf-1.0-SNAPSHOT-jar-with-dependencies.jar
    hdfs:///tmp/data-transfer-hive-udtf-1.0-SNAPSHOT-jar-with-dependencies.jar
  3. 启动Beeline,并添加函数。**