配置Hive数据源

更新时间:
复制为 MD 格式

通过数据迁移服务MMS(MaxCompute Migration Service)迁移数据前,需新增并启动Hive数据源,确保数据源与MMS服务网络连通,并将Hive的元数据同步至MMS服务,以便配置后续的迁移作业。

适用范围

迁移限制:不支持__HIVE_DEFAULT_PARTITION__分区迁移。

迁移费用

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

MMS操作

计费项

收费方

  • 数据源运行过程(包括元数据同步)

  • 任务迁移数据过程

计算费用:MaxCompute端产生Spark作业消耗计算资源

阿里云

MaxCompute

元数据同步

API调用费用:使用AWS-Glue Data Catalog时产生。

Hive

源端数据存储

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

Hive

若迁移任务配置了“开启校验”

计算费用:在HiveMaxCompute分别执行校验SQL语句产生。

阿里云

MaxComputeHive

网络配置

网络费用

  • 若有网络专线则收取专线相关费用

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

专线提供方或阿里云网络

建议选择包年包月的计算资源和数据传输独享资源来执行迁移作业,以便降低迁移成本。

操作步骤

目标端MaxCompute项目已完成准备工作

步骤一:外部数据源准备

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

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

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

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

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

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

步骤二:新增数据源

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏,选择数据传输 > 迁移服务

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

    在弹出的MaxCompute服务关联角色对话框中,单击确认,即可创建成功。若未自动弹出该对话框,则表明该角色已创建。

    新增数据源页面,配置数据源信息,然后单击新增,完成数据源创建。

    • 数据源基本信息

      参数名

      是否必填

      说明

      数据源名称

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

      数据源类型

      选择Hive

      网络连接

      选择需要使用的网络连接。

      网络连接在MaxCompute管理配置 > 网络连接 模块创建,用于MMSVPC通信,最终连接数据源。

      元数据服务类型

      • HMS:默认的元数据管理服务hive meta server,该类型需填写如下参数。

        • Metastore地址

      • AWS-GLUE:统一元数据管理服务Glue,该类型需填写如下参数。

        • AWS 地域

        • AWS Access Key Id

        • AWS Access Key Secret

      存储服务类型

      可多选:当元数据服务类型为AWS-GLUE不支持ALIYUN-OSS

      • HDFS

      • ALIYUN-OSS,该类型需填写如下参数。

        • OSS Endpoint

        • OSS Access Id

        • OSS Access Key

      • AWS-S3:填写用于连接AWS-S3S3 Endpoint

      Hive版本

      根据实际情况选择。

      Jdbc连接串

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

      Jdbc用户名

      Hive JDBC的用户名。

      Jdbc密码

      Hive JDBC的密码。

      maxcompute 迁移任务sql参数

      SQL参数。参考Flag参数列表

      默认目标MaxCompute项目

      数据迁移时选择映射的目标项目,不可修改。

      目标MaxCompute项目列表

      若一个数据源的数据需要迁移到多个目标项目,需配置目标MaxCompute项目列表。

      MaxCompute执行迁移作业的项目

      迁移过程中,执行在MaxCompute上发起的Spark、SQL等迁移作业的项目,并使用该项目关联的默认计算Quota。

    • Kerberos信息

      参数名

      说明

      Kerberos认证

      Hive metastore是否开启了Kerberos认证。若开启,则需要填写Kerberos Principal

      Kerberos Principal

      Kerberos身份认证标识。与krb5.conf里的kdc_realm值保持一致。

    • 其他信息

      以下参数均非必填,根据需要填写。

      参数名

      说明

      Hive Job配置

      用于mr, spark, tez等引擎

      Metastore定时更新

      数据源元数据是否定时拉取。取值说明如下:

      • 启用:定时拉取,更新周期支持每天和每小时,支持配置更新开始时间

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

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

      • 禁用:不定时拉取。

      Metastore访问并发量

      访问MetaStore的并发量,默认为3。

      库白名单

      需要迁移的Schema,多个值之间以半角逗号(,)分隔。

      库黑名单

      不需要迁移的Schema,多个值之间以半角逗号(,)分隔。

      表黑名单

      不需要迁移的Hive数据表。

      单个表的格式为schema.tabletable,多个表之间以半角逗号(,)分隔。

      表白名单

      需要迁移的Hive数据表。

      单个表的格式为schema.tabletable,多个表之间以半角逗号(,)分隔。

      数据搬迁任务最大并发量

      MMS最大迁移任务的并发量。过大的并发量可能造成Databricks的计算负载压力过大。默认20。

      表名字符转换配置

      格式为JSON,如{"%": "_"}用于将源表里的特殊字符映射为MaxCompute支持的字符。

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

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

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

      默认5G。一般不需要修改。

      分区特殊字符映射

      格式为JSON,如{"/": "_"}用于将源分区值中的特殊字符映射为MaxCompute支持的字符。

      Spark访问hadoop用户名

      简单鉴权模式下,默认使用admin作为Spark访问Hadoop的用户名,也可通过此参数指定。

      默认非法分区名

      Hive的默认非法分区名称。

说明

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

步骤三:同步元数据

数据源启动后会生成一个作业实例,实现数据源与MMS服务的连接,再将源数据同步至MMS服务,以便配置后续迁移作业。

说明

该作业实例会占用4 CU计算资源。当数据源无任何等待运行或正在运行的迁移作业或元数据同步作业时,系统会关闭数据源,使用时需再次启动。

  1. 数据源页签,单击目标数据源对应的操作列的更新元数据

  2. 数据源页签,可以查看目标数据源的运行状态

  3. 若数据源的元数据存在变动,且启用了元数据定时更新,系统会按照配置的时间定时更新,无需手动进行元数据同步操作。

外部数据源配置完成后,创建迁移作业