阿里云EMR 2.0:定义下一代云原生智能数据湖

2024-01-06 09:50

本文主要是介绍阿里云EMR 2.0:定义下一代云原生智能数据湖,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:本文整理自阿里云高级技术专家/数据湖存储负责人郑锴(铁杰);阿里云高级技术专家/开源大数据OLAP负责人范振(辰繁)在 阿里云EMR2.0线上发布会 的分享。

本篇内容主要介绍了阿里云云原生数据湖分析解决方案的三个核心要素:

1.全托管,湖存储;
2.一站式,湖管理;
3.多模态,湖计算

阿里云云原生数据湖分析解决方案全面重磅升级,经中国信通院评测,它是目前国内唯一满分的数据湖方案。它有三个核心要素构成:

  • 全托管,湖存储:全面兼容支持 HDFS/POSIX 协议,无缝对接大数据和AI一体化生态;
  • 一站式,湖管理:提供全面的数据库存储管理能力;
  • 多模态,湖计算:基于一湖多架构,能够同时实现离线湖、实时湖、湖仓分析。

一、全托管 - 湖存储(OSS-HDFS)

1、第三代数据湖存储 OSS-HDFS

  • 第一代数据湖存储是开源的 HDFS;
  • 标准对象存储如阿里云OSS,被认为是第二代数据库存储;
  • 阿里云融合前两代数据湖存储上的优势,推出第三代数据湖存储:OSS-HDFS。

2、OSS-HDFS 生态支持

新的数据湖存储解决方案 OSS-HDFS,通过 HDFS API 和 POSIX API,实现对数据湖存储之上丰富的大数据和AI计算场景的完整支持,这是第三代数据湖存储的核心命题。

  • 通过提供充分的、完全的 HDFS 接口兼容,充分对接 Hadoop、Spark 这类大数据生态;
  • 同时,对新兴的湖仓分析计算场景也提供了充分的支持;
  • 对于蓬勃发展的AI生态,通过 POSIX 提供兼容支持。

3、性能优势

在存储服务的核心能力方面,如性能、规模和成本上,阿里云云原生数据湖分析解决方案具备显著的优势。

  • 性能:高
    • 原子性和毫秒级目录操作 rename、delete
    • 超大目录 du/count 毫秒级返回
  • 规模:大
    • 热文件(10 亿)+ 温冷(40亿)vs 4亿
    • OSS 带宽水平扩展
  • 成本:低
    • 标准(30%)+ 低频(30%)+ 归档(40%)
    • 免运维

几十PB甚至上百PB的数据库,按照二八定律,20%的数据是热数据,80%的数据是温数据或者冷数据,利用 OSS 的分层存储和归档能力,OSS-HDFS 实现了 HDFS 的分层存储管理策略,可以将20%的热数据实施标准存储策略,80%的温数据和冷数据分别按照低频和归档的存储策略来存储,整体降低了存储成本。

OSS-HDFS 作为全托管的存储服务,相比较开源自建的 HDFS,具备免运维、低人工的维护成本,在性能、规模、成本上具备显著的性能优势。

对于用户自建的 HDFS 集群,阿里云云原生数据湖分析解决方案在业界首次提供了"三不"平滑迁移方案,不改业务代码,不改文件路径,不停存储服务。对于用户已经在 OSS 上面的数据,支持快速导入,方便用户享受 OSS-HDFS 提供的对于计算访问加速的优势。

二、一站式 - 数据湖管理(DLF)

阿里云云原生数据湖分析解决方案,通过 Data Lake Formation 这个全托管的数据湖管理产品,提供一站式数据湖管理能力。

Data Lake Formation 能够对众多的计算产品提供统一的元数据访问,具有全景的、完整的数据访问统计视图,提供诸多存储分析和成本优化方案,如智能识别温数据、冷数据和热数据,提供分层存储管理策略;如针对 Deltalake 提供自动优化策略等。

1、统一元数据服务

  • 全托管、高可用、高性能、可扩展、免运维;
  • 兼容开源 HMS 协议,无缝对接和兼容开源;
  • 支持 Multi-Catalog、多版本管理;

2、权限与安全

  • 支持库、表、列、函数级别细粒度权限控制;
  • 支持和兼容 Apache Ranger 鉴权;
  • 支持数据访问日志审计;

3、存储成本优化

  • 存储分析与成本优化;
  • 湖格式自动优化策略;
  • 数据生命周期管理;

4、存储访问加速

  • 全场景:大数据分析加速、AI 海量小文件训练加速;
  • 策略全:读缓存、写缓存、元数据缓存、分层缓存;
  • 同时支持计算透明和数据编排。

三、多模态 - 湖计算

EMR2.0遵循的是一湖多架构的计算模式,然后通过开源引擎引入组合成不同的用户场景。接下来介绍几种典型的场景:离线湖,实时湖,湖仓分析。

1、离线湖

离线湖即 Hadoop 场景,主要解决的是数仓的分层模式,一般用在T+1场景。

(离线湖)

  • OSS-HDFS:通过提供 HDFS 接口,以及 OSS 对象存储,能够做到分层存储和智能存储,可扩展性高,成本低;
  • 引入全托管的 DLF:解决了 HIVE+MySQL 这种传统元数据模式的一些痛点,包括稳定性,可扩展性等;
  • 数据湖三剑客:DELTA LAKE、HUDI、ICEBERG,这三种引擎近年来发展得非常好,在后面实时湖的部分重点介绍;
  • 计算资源层:这里一般分为 ECS 和 ACK,经过 EMR2.0 引入的这个全新开发的底座,对 ECS 和 ACK 的支持都非常好,在弹性的速度、可靠性、免运维等方面,对比上一个版本有了质的提升,
  • 计算引擎:计算引擎逐渐由 Hive on MR、Hive on Tez 迁移到 Spark。Spark 作为近十年来的一个明星产品,阿里云对 Spark 进行了深度的自研优化,在性能上比开源提升了100%。在此基础上,阿里云自研了 Remote Shuffle Service,并把它捐献到了 Apache 社区(名字为 Celeborn),Remote Shuffle Service 把所有的 Shuffle 数据放在一个 Service 上而不是依赖于本地盘,解决了 Spark 常见的 Stage 不稳定、大作业的加速等问题。

离线大数据经过十多年的发展,目前仍经久不衰,T+1的场景被用户大规模使用,这主要是因为以下几点:

  • 离线数仓的模型理论基础已经非常的完善;
  • 固定的、有界的数据对于计算引擎的复杂度要求没有那么高,可以比较方便的进行数据重跑;
  • Spark 被市场广泛接受,是一个非常稳定的产品。

2、实时湖

离线数据湖虽然被大规模使用,但它解决不了一些问题,如实时和准实时的问题,这就引出了实时湖。

(实时湖)

  • OSS-HDFS 和 DLF(见离线湖部分);
  • 数据湖的增量存储部分:数据湖三剑客 DELTA LAKE、HUDI、ICEBERG,这三种引擎近年来发展得非常好,这种表格式慢慢的也会演化成不同的方向,但它们着重解决的是同一类问题;
    • 第一,要解决的是增量模式,需要做 ACID 的事务保证,由于引入了 ACID 事务保证,实际上每一个 commit 就是一个 version,那么可以在同一套系统里去做批、做流的处理;
    • 第二,引入了自闭环元数据的结构,实际上解决的问题是大规模的元数据的扩展性以及性能问题。它所依赖的是对象存储,而不是类似Hive这种体系,所以在可扩展性上是有非常大的提高;
    • 第三,一旦引入 ACID,就可以做 update 这种场景,而要反映到大数据里面,可以通过增量表格式的研发来解决,包括常见的订单系统、对于数据回溯等状态变化的场景,也包括一些高级的特性如 Schema Evolution,Time Travel 等,对整个业务会有非常大的提升,这是增量数据湖带给我们的一些好处和能解决的一些业务痛点。
  • 计算引擎:
    • Flink:Flink 是流引擎的最明星产品,所有客户涉及到实时的产品都在用,最近主打的理念就是批流一体;
    • Presto和Trino也在往不同的方向走,比如Presto,它目前推出了一些能够进行native计算的领域,包括Velox,包括对ETL的一些补充,以及一些容错的方向,它可以做一些原先Spark才能做的工作,很多客户也在用Presto或Trino来做一些简单的ETL加工,虽然它原来标榜的是纯内存计算;
    • Trino主要的处理的方向是做connector,进行所谓的联盟查询,而且它对细粒度的优化做得非常不错。Presto和Trino主要解决的是湖数据的准实时的处理,即在几十秒或者分钟级别的查询。

实时湖通过表格式的方式去解决一些问题和痛点,其业务的可拓展性和可发展性非常强。

3、湖仓分析

一般在纯实时的场景下引入湖仓分析。

(湖仓分析)

数据湖里的数据链路,如果想被 OLAP 系统查询到,或者说被秒级的 Ad-hoc 查询,或者说被高并发查询,目前没有一种引擎可以非常完美解决。但可以把它放到一种仓里,比如常见 StarRocks,Doris,ClickHouse,可以解决实时报表,实时数仓,大屏展示等。

湖仓直接分析是因为如果把数据全部导入到 StarRocks,会有数据重复,也会增加存储成本。

为了平衡成本与性能,通过 StarRocks 统一技术栈,既可以做仓内的查询,也可以做仓外的湖查询,通过缓存机制,能够使得仓外的查询,也就是说 connector 查询,能够达到几乎和仓内查询一样的速度。

StarRocks 看起来像是现代化的云 Lakehouse,自从开源以来,从2.X版本执行引擎的性能提升,全面的向量化,查询规划优化,全新 CBO 优化,主键模型,雾物化视图等等,都是在打造仓内部,后续 StarRocks 兼容轻量的 ETL,在仓内去做分层数仓模型。

从2.4、2.5版本开始,StarRocks 逐渐转化为对于湖上数据的优化,包括提供对 DELTA LAKE、HUDI、ICEBERG 的全面支持,通过统一的技术栈,即去查询仓内数据,又去查询仓外数据,这样整个架构就会非常顺滑,客户用起来也非常轻松。

4、Serverless

Serverless StarRocks产品已开启邀测,预计3月底公测,后续还会推出 Serverless Spark、Serverless Presto/Trino;

通过 Serverless 进行存算分离架构演进,计算资源可以按需扩展,具备极致的弹性和极致的成本压缩;

通过 OSS-HDFS,DLF,Serverless,实现免运维,99.9% SLA保障,NoteBook/Dataworks 对接等,为用户提供端到端的全托管体验。

原文链接

本文为阿里云原创内容,未经允许不得转载。

这篇关于阿里云EMR 2.0:定义下一代云原生智能数据湖的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/575973

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、