本文以E-MapReduce的Hive为例,为您介绍在MaxCompute中如何创建外部项目,并查询Hadoop中的表数据。
使用限制
仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港、新加坡和德国(法兰克福)地域支持构建湖仓一体能力。
MaxCompute与Hadoop集群所在的VPC必须部署在同一地域。
准备Hadoop数据源
创建Hadoop集群,具体操作请参见开通阿里云EMR服务。
进入Hive准备数据。
使用Workbench方式登录集群主节点后,在终端界面输入如下命令:
[has@emr-header-1 root]$ hive -- 创建库 create database if not exists myhive; -- 切换库 hive> use myhive; -- 非分区表 hive> create table testtbl1(a string); hive> insert into table testtbl1 select "test1"; hive> insert into table testtbl1 select "test2"; hive> insert into table testtbl1 select "test3"; hive> insert into table testtbl1 select "test4"; hive> insert into table testtbl1 select "test5"; hive> show tables; -- 查询表 hive> select * from testtbl1; OK test1 Time taken: 0.123 seconds, Fetched: 1 row(s) -- 分区表 hive> create table testtbl_par(a string) partitioned by(b string); hive> alter table testtbl_par add if not exists partition(b='20230403') ; hive> insert into table testtbl_par partition(b='20230403') values('test1'); -- 查询表 hive> select * from testtbl_par;
MaxCompute创建外部项目
创建网络连接。
登录MaxCompute控制台,在左上角选择地域后,在左侧导航栏单击 。
单击新增网络连接。
在新增网络连接对话框中,按下表填写参数后单击确定。
参数名称
说明
连接名称
自定义网络连接名称。格式如下:
字母开头。
只能包含字母、下划线(_)和数字。
长度在1-63个字符。
类型
网络连接类型。默认为直通链接(passthrough)。
说明直通链接对应的即是专有网络连接方案。
区域
MaxCompute支持的通过专有网络连接方案开通网络连接的地域。详情请参见开通地域。
已选择VPC
创建Hadoop集群时绑定的VPC实例ID。
获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在网络信息区域获取专有网络。
交换机
创建Hadoop集群时绑定的交换机ID。
获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在网络信息区域获取虚拟交换机。
安全组
创建Hadoop集群时绑定的安全组ID。
获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在绑定资源区域获取安全组。
创建外部项目。
具体操作请参考步骤二:通过DataWorks构建湖仓一体,示例及参数说明如下:
创建数据仓库。
参数
说明
外部项目名称
external_project。
MaxCompute项目
选择已创建的MaxCompute项目。例如:mc_test。
创建外部数据湖连接。
参数
说明
异构数据平台类型
选择阿里云E-MapReduce/Hadoop集群
网络连接
选择已创建的网络连接。例如:test_net。
选择外部数据源
此处直接创建外部数据源,例如:foreign_data。参数详情请参见外部数据源参数说明。
说明如果集群为高可用集群(即创建集群时,服务高可用置为开启状态),NameNode地址和HMS服务地址需要配置两个master节点的内网IP。
如果集群不是高可用集群,则NameNode地址和HMS服务地址配置为一个master节点的内网IP。
创建目标数据映射。
参数
说明
选择外部数据源对象
默认与选择外部数据源一致。例如:foreign_data。
映射目标数据库
Hadoop集群目标数据库。例如:myhive。
单击完成创建并预览。
说明如果创建Hadoop集群时,选择的Hive组件为3.x版本,则会导致数据预览失败。
MaxCompute查询外部项目数据。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
说明您需要在DataWorks工作空间中绑定已在MaxCompute控制台创建的项目,详情请参见绑定MaxCompute引擎。
在DataWorks临时查询页面,查看外部项目数据。
说明DataWorks临时查询操作,详情请参见DataWorks临时查询。
命令示例:
select * from external_project.testtbl1;
返回结果: