MaxCompute提供数据迁移服务MMS(MaxCompute Migration Serverless ),允许您将其他数据源的数据通过MMS迁移至MaxCompute。本文介绍如何新增Hive数据源。
前提条件
Hive端准备好取数据时,需要使用的用户账号和相关权限。
当meta-type 为Glue时,需要准备可以读取Glue元数据的AWS账号。
当storage-type为S3时,需要准备可以读取S3数据的AWS账号。
当storage-type为OSS时,需要准备可以读取OSS数据的AWS账号。
如果使用Hive进行数据校验,需要准备能通过Hive JDBC执行SQL的HIVE账号。
如果使用AWS-Athena进行数据校验,AWS账号需要具备在Athena的可执行权限。
迁移费用
MMS数据迁移会由于消耗各类资源而产生消费,主要组成费用如下:
Spark计算费用:MMS数据源实例运行时,MaxCompute端产生Spark计算费用。
元数据同步费用:若使用AWS-Glue Data Catalog,同步过程中可能会产生API调用费用。
迁移过程计算费用:
Spark作业计算消费:在任务迁移数据过程中,MaxCompute端产生Spark计算费用。
存储消费:若使用OSS/S3等对象存储,源端会产生访问存储文件的费用。
SQL计算费用:若迁移任务配置了“开启校验”参数,还会在Hive和MaxCompute分别执行校验SQL语句,产生SQL计算费用。
网络费用:若有网络专线则有专线费用;若无网络专线,会产生数据流出Hive端存储的流量费用。
操作步骤
登录MaxCompute控制台,在左侧导航栏,选择 。
在数据源页签,单击新增数据源。
根据如下参数说明配置数据源,数据源类型选择
HIVE
。参数名称
描述
数据源名称
数据源名称。可自定义,不能包含字符、数字、汉字之外的特殊字符。
网络连接
选择需要使用的网络连接(networklink)。用于MMS与VPC通信,最终连接数据源。详情可参考网络开通流程。
元数据服务类型
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时,支持HDFS和ALIYUN-OSS。
元数据服务类型为AWS-GLUE时,支持HDFS和AWS-S3。
OSS Endpoint
用于连接OSS的Endpoint。存储服务类型包含ALIYUN-OSS时需要填写。
OSS Access Id
用于连接OSS的Access ID。存储服务类型包含ALIYUN-OSS时需要填写。
OSS Access Key
用于连接OSS的Access Key。存储服务类型包含ALIYUN-OSS时需要填写。
S3 Endpoint
用于连接AWS-S3的Endpoint。存储服务类型包含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侧执行SQL的project。
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运行队列等问题。