通过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控制台,在左上角选择地域。
湖仓一体支持的地域,详情请参见适用范围。
在左侧导航栏选择。
在数据湖集成(湖仓一体)页面,单击现在开始创建。
在新建数据湖集成页面,按照界面指引进行操作。参数说明如下所示。
表 2. 创建外部数据湖连接
参数
说明
异构数据平台类型
阿里云E-MapReduce/Hadoop集群:通过MaxCompute与Hadoop构建湖仓一体。
阿里云DLF+OSS数据湖连接:通过MaxCompute和DLF和OSS构建湖仓一体。
阿里云E-MapReduce/Hadoop集群
网络连接
选择或创建MaxCompute到阿里云E-MapReduce或Hadoop 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数据开发中查看外部项目元数据信息
-
登录DataWorks控制台,在左上角选择地域。
-
在左侧导航栏选择工作空间。
-
在工作空间列表页面,单击目标工作空间对应的操作列。
-
在Data Studio页面,单击左侧导航栏
图标,在数据目录中单击MaxCompute,在右侧MaxCompute - 项目页签,添加已有外部项目或新建项目。 -
单击目标表名称即可在下方查看表结构信息。
说明-
表中的元数据信息为T+1更新,即在映射端(如Hive中)修改表结构,则T+1地体现在DataWorks数据地图中(MaxCompute引擎侧为实时元数据)。
-
在公共表面板中,通过搜索框输入关键字可快速筛选外部项目表。选中目标表后,下方显示列信息、分区信息和数据预览页签,展示表的详细结构。在右侧SQL编辑器中,可编写并运行针对外部表的查询语句,查询结果展示在下方结果页签中。
相关文档
基于Hadoop集群支持Delta Lake或Hudi存储机制的湖仓一体方案,请参见基于Hadoop集群支持Delta Lake或Hudi存储机制。