MaxCompute 湖仓一体方案最佳实践 | 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习 MaxCompute 湖仓一体方案最佳实践

开发者学堂课程【SaaS  模式云数据仓库系列课程 —— 2021数仓必修课MaxCompute 湖仓一体方案最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/55/detail/1061


MaxCompute  湖仓一体方案最佳实践


内容简介:

一、最佳实践架构讲解

二、阿里云湖仓一体架构设计

三、最佳实践系统搭建


一、最佳实践架构讲解

1.系统架构

数据湖:开源  Hadoop  集群+ HDFS 存储。存储结构化、半结构化和非结构化数据。客户自建集群或者使用云厂商提供的托管服务,如阿里云EMR

数据仓库:大数据时代的集成系统,数据需要清洗和转化,并强调建模和数据管理。如阿里云  MaxCompute

湖仓一体:打通数据湖和数据仓库两套体系,让数据和计算在湖和仓之间自由流动。基于 DataWorks  强大的数据开发治理能力,提供统一的开发体验,降低两套系统的管理成本

image.png

业务部署

为了简化  Hadoop  集群部署,本篇最佳实践会在华东1杭州地域部署EMR集群。为了模拟跨地域通信,MaxCompute  项目启动在华东2上海地域。

两个地域的 VPC  通过云企业网 CEN  打通。在 MaxCompute  端 创建外部项目,也就是  external project  与  Hive DB  做映射。

其他的注意事项还有  MaxCompute  通过 ENI  网卡与  EMR  集群通信,也需要EMR  集群放开对应的访问端口,实现元数据同步和数据查询。

·EMR  集群:托管版服务模拟自建  Hadoop  集群,存储是  HDFS

·云企业网  CEN:打通跨地域的  EMR  集群和  MaxCompute  数仓

·MaxCompute  :创建外部项目,实现  Hive DB  级映射

产品名称

作用

EMR

Hadoop集群

MaxCompute

云数据仓库

DataWorks

数据开发/管理/治理

云企业网CEN

打通VPC网络

ENI弹性网卡

MaxCompute与EMR通信接口

弹性公网EIP

方便公网访问管理

安全组

管控EMR端口访问

3.方案优势

(1)业务无侵入性,用户自持的计算资源可充分利用,助力平滑上云。

(2)依托  MaxCompute  作为弹性资源池,极大地增强了系统的资源弹性,解决业务高峰计算资源不足问题。

(3)相比开源计算引擎,MaxCompute  在  SQL  上做了大量优化,可帮助用户提高  SQL  运行性能,降低计算成本。

(4)与传统的数据同步方案相比,通过共享存储,镜像元数据的方式解决了数据实时性和存储冗余的问题。

(5)数据处理能力延伸,借助  MaxCompute  无缝集成阿里云  PAI  机器学习平台,拓展离线数据集群的机器学习能力。


二、阿里云湖仓一体架构设计

1.湖仓一体的架构

湖仓一体是由两种湖组成的。

左下角是  Hadoop  生态的湖,也就是Hive数据仓库的数据,Hive  是一种数仓,是一种  schema on read  模式的数仓,也就是说数据在插入  Hive 数据库的时候是不做  schema  校验的,只有在读取的时候才会做  schema  校验。

右下角是  OSS  的湖,很多非结构化数据,包括图像,音频,视频都放在对象存储上,所以有另外一套支持对象存储的湖。

通过  DLF  做元数据管理,数据放在  OSS  上,通过云上  MaxCompute  数仓对两种湖的数据做统一的管理。

通过  DataWorks  实现统一的数据开发平台,统一的元数据管理和数据治理。

最后通过不同的角色对湖或者苍的数据进行统一管理和分析。image.png

湖仓一体应用客户:新浪微博-——案例价值

不仅融合了数据湖和数据仓库的优势,在灵活性和效率上找到最佳平衡,还快速构建了一套统一的  AI 计算中台,极大提升该机器学习平台团队的业务支撑能力。

无须进行数据搬迁和作业迁移,即可将一套作业无缝灵活调度在  MaxCompute  集群和  EMR  集群中。

SQL  数据处理任务被广泛运行到  MaxCompute  集群,性能有明显提升。基于  PAI丰富且强大的算法能力,封装出很多贴近业务场量的算法服务。满足增量业务需求,如  PAI GNN

(3)MaxCompute  云原生的弹性资源和EMR集群资源形成互补,两营体系之间进行资源的形峰填谷,不仅减少作业排队,且降低整体成本。


三、最佳实践系统搭建

1.权限管理

1. 1.创建  RAM  用户  

登录阿里云控制台,输入访问控制,跳转到  RAM  控制台,选择用户|创建用户,按如图所示进行设置,点击确定。

image.png

·AccessKey  和  AccessKey Secret  的信息,可以复制也可以下载  CSV  文件。给客户添加权限:dataworks  ,根据实际情况进行精细化配置。完成后该账户则拥有了读写  MaxCompute  的权限。

1. 2.授权  MaxCompute  访问  ENI

MaxCompute  服务需要在用户的  VPC  内创建ENI网卡,以实现  MaxCompute  到用户  VPC  的连通。所以需要授权  MaxCompute  服务访问  ENI  资源的权限。点击链接,同意授权即可,云资源访问授权成功。

2.资源创建

2. 1.CADT  构建  

通过云架构设计工具,创建湖仓一体所需要的云资源,进入  CADT  控制台,选择官方模板库,输入湖仓一体,点击基于方案新建。image.png

emr  创建的  ECS  和  ECS  本身都是有登录密码的,实现官方模板到本地应用的保存

image.png

2. 2.资源配置

下一步 应用|部署应用。进行资源的验证,如果全部验证通过,则点击下一步,如果验证失败,则有失败的原因,根据其原因进行相应的解决。image.png

点击下一步:价格清单,会根据价格列表,支付方式列出相应的价格清单。image.png

点击下一步:部署清单,勾选《云架构设计工具服务条款》,点击下一步创建资源,则整个应用处于部署中的状态,需15分钟左右。

3.云数仓  MaxCompute

1.创建工作空间

首先退出主账号,切换到  RAM  用户登录窗口,输入之前创建的  RAM  用户  ID,登录成功切换到  DataWorks  工作台。选择工作空间列表,开始创建工作空间,选择简单模式。

image.png

选择  MaxCompute  作为计算引擎,点击下一步。image.png

实例显示名称为  didw.demo ,其它选项默认。

切回到主账号,通过  CADT  的资源部署情况可以查询到对应的要安装客户端的  IP地址。image.png

3. 2.配置  MaxCompute  客户端

安装  java  运行时下载  odpscmd客户端解压,避免特殊字符的影响,先将命令复制到文本,进行编辑和对齐,复制命令,执行。image.png

运行结果如下:image.png配置odps文件,复制到文本。image.png

将  AccessKey ID  和   AccessKey Secret  在  RAM  用户处拷贝。保存,运行odpscmd  客户端是否可以正常进入项目,结果如下。image.png

4.湖仓连通

4. 1.申请  MaxCompute  与  Hadoop  通信使用的  ENI  弹性网卡

需要通过VPC来跨区域访问  Hadoop  集群,所以要打通  MaxCompute  和  VPC之间的网络通路。

这个步骤目前需要阿里云产品团队协助处理,可将以下信息通过工单提供给 MaxCompute  团队并等待产品团队评估开通网络通路:

1.可用区  ID

2.专有网络  ID

3.虚拟交换机 ID

4.ENI安全组 ID

5.主账号  UID

注意:此处的  VPC  不是 Hadoop  集群所在的  VPC,而是要与  Hadoop 集群通信的  VPC. 本示例中使用的是与  MaxCompute 项目同在上海地域的相关VPC信息。申请通过后,可在弹性网卡中看到由 MaxCompute  新建的  ENI。

4. 2.配置  Hadoop 集群安全组

MaxCompute  通过  ENI  访问  Hadoop  集群,因此也需要 Hadoop   集群的安全组或防火墙对ENI开放必要的端口(注意:端口号和  Hadoop 版本有关,本实践使用的 EMR  的  Hadoop  版本是 3.x)。

允许  HiveMetaStore   端口(通常是9083,本实践中是9083)2.允许 HDFS NameNode IPC  端口(通常是8020或9000,本实践中是8020)3.允许  HDFS DataNode  数据传输端口(通常是50010或9866,本实践中是9866)

登录VPC控制台(http://vpc.console.allyun.com),选择杭州区域,找到VPC实例,点击右侧的管理连接。image.png

点击安全组模块,点击配置规则。image.png

在安全组规则管理页面点击手动添加三个端口。

添加入方向TCP端口8020,授权对象是MaxCompute 使用的ENI所在的VPC地址段(本示例是192. 168. 0. 0/16),然后点击右侧的保存。4. 3.创建Hive数据库和表

image.png需要在  EMR 集群通过 hive  命令创建测试用的数据库和表,并插入测试数据。登录EMR  的 master  节点,输入 hive 命令:

创建数据库:

create database aliyun_bp;

创建表:

use aliyun_bp;

create table bp_articles (id string,content string) ;

插入测试数据记录:

insert into table bp_articles values ("169", "data lake”) ;

4.4创建  Extemal Project image.pngExternal project  是一种特殊的  MaxCompute  项目,无法脱离主 Project  被创建和使用。

在湖仓一体的场景下,主项目承载计算资源提供者和计费主体,用于执行作业:External project   则是  Hive Database  在  MaxCompute  中的映射,用于提仅作业和授权的所需的引用对象。在  External project  中不能执行作业,也不会产生费用。

打开  odpscmd  ,执行如下命令创建外部项目:image.png

5.命令行校验

5.1查看数据库表

元数据和数据库信息映射完成后,我们可以直接在MaxCompute 中查看到hive 数据库的表信息。

进入 odpscmd  ,选择使用刚刚创建的数据库。

键入命令  show tables  ,查看所有表。发现可以通过  odpscmd  客户端查看到在Hive  中创建的表信息。

image.png

5.2.执行  SQL  任务

在  MaxCompute   中,我们可以通过  Hive  混合模式来运行兼容 Hive  的  SQL.

在MaxCompute 端切回到主项目。在 MaxCompute  客户端运行如下命令,设置成hive  混合模式。

运行简单的  SQL  语句:

select*from biyi_008.bp_articles limit 10;

执行过程如下:image.png

6.DataWorks执行

文件夹创建:

image.png

用  dataworks  控制台一样可以查询到存储在  hadoop   集群里的信息:image.png

至此完成整个湖仓一体环境的搭建以及校验查询。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
27天前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
45 2
|
1月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
159 1
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
28天前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
31 3
|
6天前
|
缓存 监控 大数据
构建高可用AnalyticDB集群:最佳实践
【10月更文挑战第25天】在大数据时代,数据仓库和分析平台的高可用性变得尤为重要。作为阿里巴巴推出的一款完全托管的PB级实时数据仓库服务,AnalyticDB(ADB)凭借其高性能、易扩展和高可用的特点,成为众多企业的首选。本文将从我个人的角度出发,分享如何构建和维护高可用性的AnalyticDB集群,确保系统在各种情况下都能稳定运行。
14 0
|
9天前
|
数据采集 分布式计算 OLAP
最佳实践:AnalyticDB在企业级大数据分析中的应用案例
【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
30 0
|
27天前
|
SQL 分布式计算 大数据
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
40 0
|
27天前
|
大数据 流计算
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
40 0
|
3月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
3月前
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
3月前
|
SQL 存储 分布式计算
MaxCompute 入门:大数据处理的第一步
【8月更文第31天】在当今数字化转型的时代,企业和组织每天都在产生大量的数据。有效地管理和分析这些数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个用于处理海量数据的大规模分布式计算服务。它提供了强大的存储能力以及丰富的数据处理功能,让开发者能够快速构建数据仓库、实时报表系统、数据挖掘等应用。本文将介绍 MaxCompute 的基本概念、架构,并演示如何开始使用这一大数据处理平台。
466 0