通过MaxCompute与Hadoop构建湖仓一体方案旨在实现对海量数据的统一管理、存储和分析,提供了一个既能处理结构化、半结构化数据,又能满足高并发分析需求的一体化数据平台。本文为您介绍如何通过MaxCompute与Hadoop构建湖仓一体,以及管理湖仓一体项目。
前提条件
已开通MaxCompute服务并创建MaxCompute项目。详情请参见开通MaxCompute服务和创建MaxCompute项目。
说明如果已经开通了MaxCompute服务,直接使用即可。如果未开通,建议开通时设置MaxCompute数据类型为Hive兼容。
通过MaxCompute与Hadoop构建湖仓一体时,Hadoop集群所使用的VPC和MaxCompute服务开通地域保持一致,这样可以免去跨地域网络产生的费用。
当您通过MaxCompute与Hadoop构建湖仓一体时,Hadoop集群环境需开启高可用(HA)。具体详情,请咨询Hadoop集群运维人员。
使用限制
仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港、新加坡和德国(法兰克福)地域支持构建湖仓一体能力。
MaxCompute与Hadoop集群所在的VPC必须部署在同一地域。
操作流程
MaxCompute湖仓一体构建流程如下:
步骤一:MaxCompute访问授权
当您通过MaxCompute与Hadoop构建湖仓一体时,授权方法如下。授予MaxCompute在用户VPC内创建ENI网卡的权限,以实现MaxCompute到用户VPC的网络连通。您可以使用VPC所有者账号登录阿里云,单击授权进行授权。
步骤二:通过DataWorks构建湖仓一体
登录DataWorks控制台,选择支持构建湖仓一体的地域。
说明湖仓一体支持的地域,详情请参见使用限制。
在DataWorks控制台页面左侧导航栏,单击数据湖集成(湖仓一体)。
在数据湖集成(湖仓一体)页面,单击现在开始创建。
在新建数据湖集成页面,按照界面指引进行操作。参数说明如下所示。
表 1. 创建数据仓库 参数
说明
外部项目名称
自定义外部项目名称。命名规则如下:
名称需以字母开头,且只能包含字母、下划线和数字。
名称不能超过128个字符。
说明外部项目基本概念说明,请参见项目。
MaxCompute项目
选择对应的MaxCompute项目。如果没有MaxCompute项目,您可以单击新建项目(MC控制台)创建。详情请参见创建MaxCompute项目。
说明如果MaxCompute项目下拉列表中无法选择目标项目,则需要在DataWorks控制台中绑定目标项目,详情请参考在工作空间创建数据源或注册集群。
表 2. 创建外部数据湖连接
参数
说明
异构数据平台类型
阿里云E-MapReduce/Hadoop集群:通过MaxCompute与Hadoop构建湖仓一体。
阿里云DLF+OSS数据湖连接:通过MaxCompute和DLF和OSS构建湖仓一体。
阿里云E-MapReduce/Hadoop集群
网络连接
选择或创建MaxCompute到阿里云E-MapReduce或Hadoop VPC网络的连接。参数详情,请参见访问VPC方案(专线直连)中的创建MaxCompute与目标VPC网络间的网络连接步骤。
说明公测阶段暂不收费。
网络连接基本概念,请参见网络连接说明。
选择外部数据源
外部数据源保存了创建外部数据湖连接所需的URL、端口、用户鉴权等。选择或创建E-MapReduce或Hadoop外部数据源。参数详情,请参见表3 外部数据源参数说明。
表 3. 外部数据源参数说明
参数名称
说明
选择MaxCompute项目
选择目标MaxCompute项目。您可以在项目管理页签查看MaxCompute项目名称。
外部数据源名称
自定义外部数据源名称。命名规则如下:
名称只能包括小写字母、数字、下划线。
名称需小于128个字符。
网络连接对象
MaxCompute到E-MapReduce或Hadoop VPC网络的连接。详情请参见网络开通流程。
NameNode地址
目标Hadoop集群的Active和Standby NameNode服务地址和端口号(端口号通常是8020)。具体详情,请您联系Hadoop集群管理员获取。
HMS服务地址
目标Hadoop集群的Active和Standby NameNode的Hive元数据服务地址和端口号(端口号通常是9083)。具体详情,请您联系Hadoop集群管理员获取。
集群名称
在Hadoop集群高可用环境下用于指代NameNode的名称。自构建Hadoop集群场景下,您可以通过hdfs-site.xml文件中的dfs.nameservices配置参数获取集群名称。
认证类型
MaxCompute通过账号映射的方式去Hadoop集群获取元数据和数据,映射的Hadoop账号往往会有认证授权机制(如Kerberos)保护,因此需要账户的认证授权信息文件。请根据实际情况进行选择,详情请咨询Hadoop运维人员。
无认证方式:Hadoop集群没有开启Kerberos认证授权机制,选择此项。
Kerberos账号认证:Hadoop集群开启Kerberos认证授权机制,选择此项。
配置文件:上传Hadoop集群中的krb5.conf文件。
说明如果Hadoop集群搭建在Linux操作系统上,krb5.conf文件一般位于Hadoop HDFS namenode master节点的
/etc
目录下。hmsPrincipals:HMS服务身份标识。您可以在Hadoop集群Kerberos终端,用
list_principals
命令获取HMS Principals。该选项示例如下所示。hive/emr-header-1.cluster-20****@EMR.20****.COM,hive/emr-header-2.cluster-20****@EMR.20****.COM
说明不同节点的服务信息是以逗号分隔的字符串,且每个Principals与HMS服务地址一一对应。
添加配置引擎权限映射。
云账号:使用MaxCompute访问Hadoop集群的阿里云账号。
Kerberos账号:Kerberos授权的具有Hive访问权限的Hadoop用户账号。
上传文件:上传Kerberos账号的keytab配置文件。具体生成方式,请参见生成keytab配置文件。
表 4. 创建目标数据映射
参数
说明
选择外部数据源对象
默认与选择外部数据源一致。
映射目标数据库
Hadoop集群目标数据库。
步骤三:通过DataWorks管理湖仓一体
使用湖仓一体
在DataWorks控制台页面左侧导航栏,单击数据湖集成(湖仓一体)。
在数据湖集成(湖仓一体)页面,选择目标外部项目,开始使用湖仓一体。
使用湖仓一体。
单击目标外部项目操作列的使用湖仓一体。
更新湖仓一体外部项目。
单击目标外部项目操作列的项目配置,即可在项目配置对话框更新外部项目信息。
说明您可以更新MaxCompute外部项目映射的外部数据源的数据库名称,以及重新选择外部数据源。如果需要删除外部数据源,请到外部数据源页面进行删除(暂不支持外部数据源更新操作)。
删除湖仓一体外部项目。
单击目标外部项目操作列的删除,即可删除当前MaxCompute外部项目。
说明该删除操作为逻辑删除操作,外部项目会进入静默状态,并在15天后被正式删除。在此期间无法创建同名外部项目。
查看湖仓一体外部项目的元数据信息
在DataWorks控制台页面左侧导航栏,单击工作空间列表。
在工作空间列表中,选择与外部项目绑定的工作空间,单击操作列的数据地图。
在数据地图页面的搜索框或全部数据页签左侧项目下拉列表,输入外部项目中的表名进行搜索。
说明表的申请权限和查看血缘功能暂时不可用。
表中的元数据信息为T+1更新,即在映射端(如Hive中)修改表结构,则T+1地体现在DataWorks数据地图中(MaxCompute引擎侧为实时元数据)。
在DataWorks数据开发中查看外部项目元数据信息
在DataWorks控制台页面左侧导航栏,单击工作空间列表。
在工作空间列表中,选择与外部项目绑定的工作空间,单击操作列的数据开发。
在DataStudio页面左侧菜单栏单击公共表。
在公共表页面的引擎类型下拉框中选择MaxCompute。
在项目名或表名搜索框输入外部项目中的表名进行搜索,单击目标表名称即可在下方查看表结构信息。
说明表的申请权限和查看血缘功能暂时不可用。
表中的元数据信息为T+1更新,即在映射端(如Hive中)修改表结构,则T+1地体现在DataWorks数据地图中(MaxCompute引擎侧为实时元数据)。
相关文档
基于Hadoop集群支持Delta Lake或Hudi存储机制的湖仓一体方案,请参见基于Hadoop集群支持Delta Lake或Hudi存储机制。