配置Hive数据源

MaxCompute提供数据迁移服务MMS(MaxCompute Migration Serverless ),允许您将其他数据源的数据通过MMS迁移至MaxCompute。本文介绍如何新增Hive数据源。

前提条件

Hive端准备好取数据时,需要使用的用户账号和相关权限。

  • meta-type 为Glue时,需要准备可以读取Glue元数据的AWS账号。

  • storage-typeS3时,需要准备可以读取S3数据的AWS账号。

  • storage-typeOSS时,需要准备可以读取OSS数据的AWS账号。

  • 如果使用Hive进行数据校验,需要准备能通过Hive JDBC执行SQLHIVE账号。

  • 如果使用AWS-Athena进行数据校验,AWS账号需要具备在Athena的可执行权限。

迁移费用

MMS数据迁移会由于消耗各类资源而产生消费,主要组成费用如下:

  • Spark计算费用:MMS数据源实例运行时,MaxCompute端产生Spark计算费用。

  • 元数据同步费用:若使用AWS-Glue Data Catalog,同步过程中可能会产生API调用费用。

  • 迁移过程计算费用:

    • Spark作业计算消费:在任务迁移数据过程中,MaxCompute端产生Spark计算费用。

    • 存储消费:若使用OSS/S3等对象存储,源端会产生访问存储文件的费用。

    • SQL计算费用:若迁移任务配置了“开启校验”参数,还会在HiveMaxCompute分别执行校验SQL语句,产生SQL计算费用。

  • 网络费用:若有网络专线则有专线费用;若无网络专线,会产生数据流出Hive端存储的流量费用。

操作步骤

  1. 登录MaxCompute控制台,在左侧导航栏,选择数据传输 > 迁移服务

  2. 数据源页签,单击新增数据源

  3. 根据如下参数说明配置数据源,数据源类型选择HIVE

    参数名称

    描述

    数据源名称

    数据源名称。可自定义,不能包含字符、数字、汉字之外的特殊字符。

    网络连接

    选择需要使用的网络连接(networklink)。用于MMSVPC通信,最终连接数据源。详情可参考网络开通流程

    元数据服务类型

    • HMS:默认的元数据管理服务hive meta server

    • AWS-GLUE:统一元数据管理服务Glue

    Metastore地址

    当元数据服务类型为HMS时,根据实际情况填写。如:thrift://192.168.0.212:9083。

    AWS地域

    AWS 服务地域。元数据服务类型为AWS-GLUE时需要填写。

    AWS Access Key Id

    AWS access key id。元数据服务类型为AWS-GLUE时需要填写。

    AWS Access Key Secret

    AWS access key secret。元数据服务类型为AWS-GLUE时需要填写。

    Glue连接地址

    当元数据服务类型为AWS-GLUE时,根据实际情况填写。

    存储服务类型

    可多选:HDFS、ALIYUN-OSS、AWS-S3。

    • 元数据服务类型为HMS时,支持HDFSALIYUN-OSS。

    • 元数据服务类型为AWS-GLUE时,支持HDFSAWS-S3。

    OSS Endpoint

    用于连接OSSEndpoint。存储服务类型包含ALIYUN-OSS时需要填写。

    OSS Access Id

    用于连接OSSAccess ID。存储服务类型包含ALIYUN-OSS时需要填写。

    OSS Access Key

    用于连接OSSAccess Key。存储服务类型包含ALIYUN-OSS时需要填写。

    S3 Endpoint

    用于连接AWS-S3Endpoint。存储服务类型包含AWS-S3时需要填写。

    AWS S3 查询引擎

    用于Count校验数据的S3查询引擎。

    • Hive-使用Hive JDBC查询。

    • ATHENA-使用AWS ATHENA查询。

    Hive版本

    默认为3,可根据实际情况选择。

    Jdbc连接串

    Hive Jdbc的连接信息。格式为jdbc:hive2://localhost:10000/default

    Jdbc用户名

    Hive Jdbc的用户名,必填。

    Jdbc密码

    Hive Jdbc的密码,可选。

    MaxCompute迁移任务sql参数

    默认:

    {

    "odps.sql.hive.compatible": "true",

    "odps.sql.split.hive.bridge": "true"

    }

    MaxCompute执行迁移作业的Project

    MaxCompute侧执行SQLproject。

    Kerberos认证

    Hive metastore是否开启了Kerberos认证。若开启,则需要填写下方的Kerberos的相关配置。

    Kerberos Principal

    krb5.conf里的kdc_realm值保持一致。

    kerberos keytab文件位置

    keytab文件在MMA所在服务器上的路径。

    kerberos gss-jaas.conf文件位置

    gss-jaas.conf文件在MMA所在服务器上的路径。

    kerberos krb5.conf文件位置

    krb5.conf文件在MMA所在服务器上的路径。

    Hive Job配置

    默认为MapReduce,用于MapReduce、Spark、Tez等引擎。

    Metastore 定时更新

    配置数据源元数据定时拉取,或选择启用,则有以下两种定时方式:

    • 每天:定时器每天运行一次,运行时刻为选定的24小时内的某一时间(精确到分钟)。

    • 每小时:定时器每小时运行一次,运行时刻为选定的60分钟内的某一分钟。

    Metastore 访问并发量

    访问Hive MetaStore的并发量,用于提高获取Hive元数据的速度。

    库白名单

    需要迁移的Hive数据库,多个值之间以英文逗号分隔。

    库黑名单

    不需要迁移的Hive数据库,多个值之间以英文逗号分隔。

    表黑名单

    格式为db.table,不需要迁移的Hive数据库表。单个表的格式为dbname.tablename,多个表之间以英文逗号分隔。

    表白名单

    格式为db.table,需要迁移的Hive数据库表。单个表的格式为dbname.tablename,多个表之间以英文逗号分隔。

    表名字符转换配置

    表名字符映射,如 Hive 的表名中 MaxCompute 不支持的特殊字符进行转换,比如配置为 {"_":"-"} 将表名中的字符 "_" 转换为 "-"。

    单个任务处理的最多分区数量

    默认50。即一次MMA任务迁移的分区数量,通过批量的分区迁移,可以减少提交Hive SQL的次数,节约Hive SQL提交时间。

    单个任务处理的最大数量(单位G)

    单位GB,默认5。即一次MMA任务迁移的所有分区的大小之和的上限。

    分区特殊字符映射

    用于将源端分区值中 MaxCompute 不支持的特殊字符,转换为 MaxCompute 支持的字符,比如 {"'": "_"} 将分区值中的单引号转换为下划线。

说明

如果Hive使用的引擎不是MR,则需要通过指定“hive.execution.engine”值来设置Hive使用的引擎,并且用于不同引擎的任务参数需要自行调整。该配置用于解决YARN Container内存不足、指定Spark运行队列等问题。