阿里云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

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time