MaxCompute提供的数据迁移服务支持通过MMA(MaxCompute Migration Assist)服务,将Hive数据安全且高效地迁移到MaxCompute。
迁移流程
使用限制
不支持迁移Hive数据至已开启Schema功能的MaxCompute项目。关于Schema介绍详情,请参见Schema操作。
已开启Schema功能不支持关闭。
步骤一:安装UDTF
使用MaxCompute迁移功能时,需要在Hive服务器上安装UDTF(Unified Data Transfer Service)并自定义Hive UDTF函数,利用Hive UDTF函数来获取、转换、上传数据到MaxCompute,以实现复杂数据的迁移。关于Hive UDTF详情,请参见UDTF。
根据Hive版本下载UDTF jar包。
执行以下命令,上传UDTF jar至HDFS。本文以
mma-udtf-hive2.jar
为例。hdfs dfs -put -f mma-udtf-hive2.jar hdfs:///tmp/
使用Beeline或Hive命令登录Hive,创建Hive UDTF。
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/mma-udtf-hive2.jar';
加载自定义函数Hive UDTF。
需要在Beeline命令行界面,执行以下命令。
reload function;
如果有多个Hive Server2实例,要依次使用Beeline命令行界面,执行以上命令。
步骤二:安装并启动MMA服务
MMA网络架构图
MMA作为连接Hive网络环境和MaxCompute之间的中转节点,其网络架构图如下所示。
环境准备
计划安装MMA服务的服务器,需满足以下要求:
安装JDK 8版本的Java。
能够访问Hive MetaStore和Hive Server2,以及MaxCompute的服务接入点。
操作步骤
根据Hive版本下载对应版本的MMA jar包。本文以
mms-agent-hive2.jar
为例。在jar包相同目录下,新增并配置
config.ini
文件。config.ini
文件示例内容如下。[mms] region = cn-hangzhou endpoint = maxcompute.cn-hangzhou.aliyuncs.com access_id = LTAI**************** access_key = ******************** mc_endpoint = http://service.cn-hangzhou.maxcompute.aliyun.com/api mc_data_endpoint = http://service.cn-hangzhou.maxcompute.aliyun.com/api mc_tunnel_endpoint = http://dt.cn-hangzhou.maxcompute.aliyun.com [agent] name = mmaagent_doc is_in_vpc = false
参数说明
参数名称
是否必填
说明
参数名称
是否必填
说明
region
是
Hive安装的地域ID。各地域ID详情,请参见服务接入点。
endpoint
是
MMA服务连接地址。各地域连接地址详情,请参见服务接入点。
access_id
是
阿里云账号或RAM用户的AccessKey ID。
您可以进入AccessKey管理页面获取AccessKey ID。
access_key
是
AccessKey ID对应的AccessKey Secret。
mc_endpoint
是
访问MaxCompute服务的连接地址。各地域及网络对应的Endpoint值,请参见Endpoint。
mc_data_endpoint
否
Hive访问MaxCompute服务的连接地址。各地域及网络对应的Endpoint值,请参见Endpoint。
仅MMA与Hive不在同一网络环境时,需配置此参数。
mc_tunnel_endpoint
否
Tunnel服务的外网访问链接。如果您未配置Tunnel Endpoint,Tunnel会自动路由到MaxCompute服务所在网络对应的Tunnel Endpoint。如果您配置了Tunnel Endpoint,则以配置为准,不进行自动路由。
各地域及网络对应的Tunnel Endpoint值,请参见Endpoint。
source_id
否
数据源ID。若配置此参数,当前MMA服务将与数据源绑定。
在数据源管理页签,单击目标数据源操作列中的编辑,然后查看URL,获取
source_id
其格式为/mms/source/{source_id}/config
。name
是
MMA服务名称,租户级别下MMA名称不能重复。本文以
mmaagent_doc
为例。is_in_vpc
否
MMA服务是否运行在阿里云VPC内,默认为false。
执行以下命令,启动MMA服务。
java -jar mms-agent-hive2.jar -c config.ini
返回如下图所示,即启动成功。
步骤三:数据迁移
前提条件
阿里云账号或RAM用户已开通MaxCompute服务。
默认只有阿里云账号可以创建、配置和删除项目以及变更项目状态,如果您需要以RAM用户管理MaxCompute项目,请确认已获取RAM用户账号并已授予AliyunMaxComputeFullAccess系统策略或自定义RAM策略权限。
更多创建或获取RAM用户信息操作,请参见准备RAM用户。
创建Hive数据源
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择
。在数据源管理页签,单击新增数据源,配置数据源参数。
基本信息
参数名称
是否必填
说明
参数名称
是否必填
说明
数据源名称
是
数据源的名称。
数据源类型
是
待迁移的数据源类型,当前仅支持Hive。
Agent名称
是
选择已配置的MMA服务名称,本文创建的名称为
mmaagent_doc
。Metastore地址
是
Hive MetaStore服务的访问地址。
Jdbc连接串
是
Hive JDBC的连接信息。格式为
jdbc:hive2://localhost:10000/default
。Jdbc用户名
是
Hive JDBC的用户名称。
Jdbc密码
否
Hive JDBC的密码。
用于执行Maxcompute Sql的Project
是
选择迁移至MaxCompute的项目。
如果Hive开启了Kerberos协议认证,需要填写以下参数。
参数名称
说明
参数名称
说明
Kerberos认证
打开Kerberos协议认证开关。
默认是Kerberos协议认证开关是关闭的。
Kerberos Principal
Kerberos身份认证标识。
Keytab文件
上传Kerberos的服务端配置文件。
Krb5.conf文件
上传Kerberos的客户端配置文件。
其他信息,您可以根据需要选择配置以下参数。
参数名称
说明
参数名称
说明
单个任务处理的最多分区数量
需要迁移的分区数量的最大值。
单个任务处理的最大数量(单位GB)
需要迁移的分区数据大小的最大值。
Hive Job配置
Hive引擎相关的任务参数,默认为MR引擎的部分配置。
该配置用于解决YARN容器内存不足、指定Spark运行队列等问题。
数据库白名单
需要迁移的Hive数据库,多个值之间以英文逗号分隔。
数据库黑名单
不需要迁移的Hive数据库,多个值之间以英文逗号分隔。
Metastore访问并发量
访问Hive MetaStore的并发量,用于提高获取Hive元数据的速度。
表黑名单
不需要迁移的Hive数据库表。
单个表的格式为
dbname.tablename
,多个表之间以英文逗号分隔。表白名单
需要迁移的Hive数据库表。
单个表的格式为
dbname.tablename
,多个表之间以英文逗号分隔。数据搬迁任务最大并发量
数据迁移并发数。
配置完成后,单击新增。
在数据源管理页签,单击数据源列表操作列中的更新元数据。
更新元数据将获取当前Hive数据源中的数据库信息。如果数据量较大,可能需要几分钟才能完成更新。
创建迁移计划
选择目标数据源,查看数据源下待迁移的数据库列表。
您可以按照实际迁移需求,选择整库迁移或部分迁移。
整库迁移
单击待迁移数据库列表操作列中的整库迁移。
部分迁移
单击待迁移数据库列表操作列中的部分迁移。
在表列表页签或分区列表页签,勾选需要迁移的表或分区。
单击新建迁移计划。
在新建迁移计划页面,配置以下参数。
参数名称
是否必填
说明
参数名称
是否必填
说明
计划名称
是
迁移计划的名称。
数据源
是
Hive数据源名称。
源库
是
源数据库名称。
目标MaxCompute项目
是
目标MaxCompute项目名称。
table黑白名单
否
配置需要迁移或不需要迁移的表,多个表之间使用英文逗号进行分隔。
如果未配置则默认将迁移源库中的所有表。
表白(黑)名单
否
开启校验
否
校验源表与目标表的记录数。若开启校验,当校验结果不一致,会提示校验不通过。
增量迁移
否
增量迁移数据,默认开启。
在开启增量迁移后,已经成功迁移的分区或表数据将被跳过,不会再次进行迁移。
只迁移表结构
否
默认情况下,开启后仅迁移表结构,而不迁移数据。
分区过滤
否
配置分区过滤条件,详情请参见分区过滤表达式说明。
表名映射
否
设置迁移到目标MaxCompute项目后的表名称。
配置完成后,单击提交。
您可以在迁移计划管理页签,查看已提交的迁移计划的状态和迁移进度。
更多操作
在数据源管理页签,单击目标数据源操作列中编辑或删除,进行更新或删除数据源信息。
在迁移计划管理页签,您可以进行以下操作:
停止迁移计划:单击目标迁移计划操作列中的停止。
启动迁移计划:单击目标迁移计划操作列中的开始。
删除迁移计划:单击目标迁移计划操作列中的删除。
删除迁移计划时,如果计划正在进行中,已完成迁移的数据将不会被删除。
查看迁移计划详情:单击目标迁移计划操作列中的详情,在迁移任务列表,单击目标迁移任务操作列中的日志,查看迁移计划的日志详情。
- 本页导读 (1)
- 迁移流程
- 使用限制
- 步骤一:安装UDTF
- 步骤二:安装并启动MMA服务
- MMA网络架构图
- 环境准备
- 操作步骤
- 步骤三:数据迁移
- 前提条件
- 创建Hive数据源
- 创建迁移计划
- 更多操作