MaxCompute湖仓一体方案最佳实践

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 希望通过本次演讲,让大家更深入了解MaxCompute湖仓一体方案最佳实践,加深对MaxCompute湖仓一体方案的理解与认识,最终可大幅度增强系统的资源弹性,解决业务高峰期计算资源不足的问题。

分享人:毕役           解决方案架构师;

            孟硕           MaxCompute产品经理

正文:

本篇内容将从3个部分为读者介绍MaxCompute湖仓一体方案最佳实践,自建数据湖与云数仓的融合解决方案,将MaxCompute与自建的Hive集群做数据打通,通过存储共享,元数据镜像等方式,解决传统模式下的存储冗余,计算资源弹性能力弱的痛点。

Ÿ 最佳实践架构讲解

Ÿ 阿里云湖仓一体架构设计

Ÿ 最佳实践系统搭建

 

一、最佳实践架构讲解

最佳实践架构由阿里云智能业务支撑平台团队的解决方案架构师毕役负责讲解。


(1) 系统架构


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

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

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

image.png


(2) 业务部署


假定数据湖 Hadoop 集群和云数仓 MaxCompute 部署在不同地域,通过云企业网CEN 打通;MaxCompute 端创建外部项目,镜像 Hive 元数据,通过 IPC 端口与 namenode 和datanode 通信。

image.png


(3) 方案优势


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

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

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

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

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


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

阿里云湖仓一体架构设计由MaxCompute产品经理孟硕负责讲解。


(1) 湖仓一体的架构


image.png

湖仓一体是由两种湖组成的。Hadoop生态的湖也就是HIve数据仓库的数据,Hive是一种数仓,是一种schema on read 模式的数仓,数据在插入Hive数据。通过DLF做元数据管理,数据放在OSS上。通过云上MaxCompute数仓对两种湖的数据做统一的管理,通过DataWorks实现统一的数据开发平台、统一的元数据管理以及数据治理。最后不同角色对湖或者仓的数据进行统一管理和分析。

Hadoop湖里主要连接的是Hive,元数据是读取Hive Meta Store,数据是存储在HDFS上。通过专线打通两边的VPC,达到元数据和数据的连接通过专线读取数据,对于频繁访问的数据通过算法自动缓存到MaxCompute的Cache文件系统上。

关系型数据库以及NoSQL数据库的元数据通过DLF做统一管理,数据放在OSS上再和MaxCompute文件系统打通。上层可以利用MaxCompute的SQL/Spark、Python/Mars、PAI以及第三方引擎,有Cupid组件提供支持第三方引擎对数据做处理,提供统一的访问入口。客户通过MaxCompute就能达到对两种湖的统一管理。

由DataWorks提供的统一开发管理平台,有统一的IDE、任务调度、数据安全、数据资产管理、数据服务、开放以及定制等等。客户可以按照不同的角色不同的分析场景使用这些数据和工具。

image.png


(2) 案例价值


新浪微博通过湖仓一体的架构融合了数据湖和数据仓库的优势:

不仅融合了数据湖和数据仓库的优势,在灵活性和效率上找到最佳平衡,还快速构建了一套统一的Al计算中台,极大提升该机器学习平台团队的业务支撑能力。无须进行数据搬迁和作业迁移,即可将一套作业无缝灵活调度在MaxCompute集群和EMR集群中。

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

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


三、 最佳实践系统搭建

最佳实践系统搭建由阿里云智能业务支撑平台团队的解决方案架构师毕役负责讲解。


(1) 权限管理


l 创建RAM用户

步骤1 使用云账号登录阿里云 RAM 访问控制控制台。

步骤2 在左侧导航栏选择人员管理 > 用户,并单击创建用户。

image.png

 

步骤3 在创建用户页面,完成以下配置,并单击确定。

image.png

步骤4 完成二次验证,并单击确定,成功创建 RAM 用户(demo)。

步骤5 点击下载 CSV 文件,将 AccessKey ID 和 AccessKey Secret 信息下载保存后妥善保管。

步骤6 在用户信息列表,勾选 RAM 用户,单击添加权限。

步骤7 在添加权限侧边页,搜索并选择 AliyunDataWorksFullAccess 系统权限策略,然后单击确定。授权成功,点击完成。

image.png

步骤8 确认授权结果,单击完成。

l 授权MaxCompute访问ENI

MaxCompute 服务需要在用户的 VPC 内创建 ENI 网卡,以实现 MaxCompute 到用户 VPC 的连通。所以需要授权 MaxCompute 服务访问 ENI 资源的权限。

使用主账号在阿里云登录态点击连接,并点击同意授权。

image.png


(2) 资源创建


l CADT构建

步骤1 访问官方模板 ,输入“湖仓一体”关键字模糊搜索,找到《湖仓一体》模板,点击 基于方案新建。

步骤2 双击图标元素,确认参数配置符合预期。

步骤3 需要设置 ECS 的登录密码,可以保持默认值,也可以自定义。

image.png

步骤4 点击保存

步骤5 点击 部署应用

步骤6 资源验证成功之后,点击下一步“价格清单”

image.png

步骤7 点击下一步“部署清单”

image.png

步骤8 勾选 云架构设计工具服务条款,点击下一步“创建资源”

步骤9 等待资源创建成功,大概需要 15 分钟。主要时间花费在创建 EMR 集群。


l 资源配置


1.给 master 节点绑定 EIP


任意选择一 master 节点,绑定 EIP,方便远程 ssh 登录访问。

image.png



2.购买 CEN 流量包


默认 CEN 内的网络有 1K 的网络带宽用于验证连通性。若想正常的跨域访问业务,则需要购买对应的带宽包。

步骤1 登录云企业网实例控制台。(cen.console.aliyun.com),点击带宽包管理,点击购买预付费带宽。

image.png

步骤2 本次实践购买使用 10Mbps 的带宽进行方案演示。

步骤3 设置跨地域互通带宽。


(3) 云数仓MaxCompute


l 创建工作空间


步骤1 使用创建的 RAM 用 户 登 录 DataWorks 控制台。

步骤2 点击做的工作空间列表,选择上海区域,然后右侧单击创建工作空间。

image.png

步骤3 在基本配置页面,填写项目名称,并单击下一步。

步骤4 在引擎虚选择页面,勾选 MaxCompute 并选择按量付费。

image.png

步骤5 在引擎详情页,填写实例显示名称和 MaxCompute 项目名称,然后点击创建工作空间。


l 配置MaxCompute客户端


步骤1 切换到上海 region,ssh远程登录已创建的 ECS,安装 odpscmd 客户端。

步骤2 配置 MaxCompute 客户端。配置文件位于 /usr/local/share/odpscmd/conf/odps_config.ini,请参考如下配置项,并将【项目名称】替换为新建的 MaxCompute 项目名称。

步骤3 配置完成后,执行命令 odpscmd,验证是否可以正常进入项目空间。

image.png


(4) 湖仓连通


l 申请 MaxCompute 与 VPC 的网络连通


MaxCompute 需要通过 VPC 来跨区域访问 Hadoop 集群,所以要打通 MaxCompute和 VPC 之间的网络通路。这个步骤目前需要阿里云产品团队协助处理,可将以下信息通过工单提供给 MaxCompute 团队并等待产品团队评估开通网络通路:可用区 ID;专有网络 ID;虚拟交换机 ID;ENI 安全组 ID;主账号 UID。


l 配置 Hadoop 集群的网络安全规则


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

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

步骤1 登录 VPC 控制台,选择杭州区域,找到 VPC 实例,点击右侧的管理连接。

image.png

步骤2 点击安全组模块(默认安全组),然后点击配置规则。

步骤3 在安全组规则管理页面,点击手动添加。

image.png

步骤4 添加入方向 TCP 端口 8020,授权对象是 MaxCompute 使用的 ENI 所在的 VPC 地址段(本示例是 192.168.0.0/16),然后点击右侧的保存。

步骤5 然后依次添加端口 9083 和 9866。


l 创建 Hive 数据库和表


需要在 EMR 集群通过 hive 命令创建测试用的数据库和表,并插入测试数据。

步骤1 登录 EMR 的 master 节点,输入 hive 命令。若无法远程 ssh,请检查对应的安全组是否开放 22 端口。

image.png

步骤2 创建数据库

create database aliyun_bp;

步骤3 创建表

use aliyun_bp;

create table bp_articles(id string,content string);

步骤4 插入测试数据记录

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

image.png


l 创建 External Project


image.png

步骤1 打开 odpscmd,执行如下命令创建外部项目(请结合参数说明替换掉花括号中的信息):

image.png

image.png

image.png


(5) 命令行校验


l 查看数据库表


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

image.png

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

image.png


l 执行 SQL 任务


步骤1 在 MaxCompute 端切回到主项目。

步骤2 在 MaxCompute 客户端运行如下命令,设置成 hive 混合模式。

image.png

步骤3 运行简单的 SQL 语句:

image.png


(6) DataWorks执行


步骤1 选择创建的工作空间,点击 进入数据开发。

image.png

步骤2 选择 数据开发,右击 业务流程,点击 新建业务流程。

image.png

步骤3 输入业务名称,点击新建。

步骤4 双击 OPDS SQL。

image.png

步骤5 输入节点名称,选择目标文件夹,创建节点。

步骤6 输入查询语句,点击执行

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
相关文章
|
13天前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
36 2
|
18天前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
112 1
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
13天前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
25 3
|
13天前
|
SQL 分布式计算 大数据
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
29 0
|
13天前
|
大数据 流计算
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
35 0
|
2月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
2月前
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
2月前
|
SQL 存储 分布式计算
MaxCompute 入门:大数据处理的第一步
【8月更文第31天】在当今数字化转型的时代,企业和组织每天都在产生大量的数据。有效地管理和分析这些数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个用于处理海量数据的大规模分布式计算服务。它提供了强大的存储能力以及丰富的数据处理功能,让开发者能够快速构建数据仓库、实时报表系统、数据挖掘等应用。本文将介绍 MaxCompute 的基本概念、架构,并演示如何开始使用这一大数据处理平台。
373 0
|
2月前
|
SQL 分布式计算 大数据
"大数据计算难题揭秘:MaxCompute中hash join内存超限,究竟该如何破解?"
【8月更文挑战第20天】在大数据处理领域,阿里云的MaxCompute以高效稳定著称,但复杂的hash join操作常导致内存超限。本文通过一个实例解析此问题:数据分析师小王需对两个共计300GB的大表进行join,却遭遇内存不足。经分析发现,单个mapper任务内存默认为2GB,不足以支持大型hash表的构建。为此,提出三种解决方案:1) 提升mapper任务内存;2) 利用map join优化小表连接;3) 实施分而治之策略,将大表分割后逐一处理再合并结果。这些方法有助于提升大数据处理效率及稳定性。
60 0
|
12天前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势

热门文章

最新文章