MaxCompute+Hadoop搭建实践

本文以E-MapReduce的Hive为例,为您介绍在MaxCompute中如何创建外部项目,并查询Hadoop中的表数据。

使用限制

  • 仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港、新加坡和德国(法兰克福)地域支持构建湖仓一体能力。

  • MaxCompute与Hadoop集群所在的VPC必须部署在同一地域。

准备Hadoop数据源

  1. 创建Hadoop集群,具体操作请参见开通阿里云EMR服务

  2. 进入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创建外部项目

  1. 创建网络连接。

    1. 登录MaxCompute控制台,在左上角选择地域后,在左侧导航栏单击租户管理 > 网络连接

    2. 单击新增网络连接

    3. 新增网络连接对话框中,按下表填写参数后单击确定image..png

      参数名称

      说明

      连接名称

      自定义网络连接名称。格式如下:

      • 字母开头。

      • 只能包含字母、下划线(_)和数字。

      • 长度在1-63个字符。

      类型

      网络连接类型。默认为直通链接(passthrough)

      说明

      直通链接对应的即是专有网络连接方案。

      区域

      MaxCompute支持的通过专有网络连接方案开通网络连接的地域。详情请参见开通地域

      已选择VPC

      创建Hadoop集群时绑定的VPC实例ID。

      获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在网络信息区域获取专有网络

      交换机

      创建Hadoop集群时绑定的交换机ID。

      获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在网络信息区域获取虚拟交换机

      安全组

      创建Hadoop集群时绑定的安全组ID。

      获取方式:进入Hadoop集群绑定的ECS实例的实例详情页面,在绑定资源区域获取安全组

  2. 创建外部项目。

    具体操作请参考步骤二:通过DataWorks构建湖仓一体,示例及参数说明如下:image..png

    1. 创建数据仓库。

      参数

      说明

      外部项目名称

      external_project。

      MaxCompute项目

      选择已创建的MaxCompute项目。例如:mc_test。

    2. 创建外部数据湖连接。

      参数

      说明

      异构数据平台类型

      选择阿里云E-MapReduce/Hadoop集群

      网络连接

      选择已创建的网络连接。例如:test_net。

      选择外部数据源

      此处直接创建外部数据源,例如:foreign_data。参数详情请参见外部数据源参数说明

      说明
      • 如果集群为高可用集群(即创建集群时,服务高可用置为开启状态),NameNode地址HMS服务地址需要配置两个master节点的内网IP。

      • 如果集群不是高可用集群,则NameNode地址HMS服务地址配置为一个master节点的内网IP。

    3. 创建目标数据映射。

      参数

      说明

      选择外部数据源对象

      默认与选择外部数据源一致。例如:foreign_data。

      映射目标数据库

      Hadoop集群目标数据库。例如:myhive。

    4. 单击完成创建并预览

      说明

      如果创建Hadoop集群时,选择的Hive组件为3.x版本,则会导致数据预览失败。

  3. MaxCompute查询外部项目数据。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

      说明

      您需要在DataWorks工作空间中绑定已在MaxCompute控制台创建的项目,详情请参见绑定MaxCompute引擎

    2. 在DataWorks临时查询页面,查看外部项目数据。

      说明

      DataWorks临时查询操作,详情请参见DataWorks临时查询

      • 命令示例:

        select * from external_project.testtbl1;
      • 返回结果:image..png