架构师必备:云原生数据湖体系_云原生系统架构师-程序员宅基地

技术标签: 云原生数据湖  架构微学堂  架构沉思录  

 

背景

 

“ 数据湖 ”正在被越来越多人提起,尽管定义并不统一,但企业们都已纷纷下水实践,无论是AWS还是阿里云、华为。我们认为:数据湖是大数据和AI时代融合存储和计算的全新体系。

 

为什么这么说?还要从它的发展说起。

 

数据量爆发式增长的今天,数字化转型成为IT行业的热点,数据需要更深度的价值挖掘,因此需要确保数据中保留的原始信息不丢失,应对未来不断变化的需求。当前以Oracle为代表的数据库中间件已经逐渐无法适应这样的需求,于是业界也不断地产生新的计算引擎,以便应对大数据时代的到来。企业开始纷纷自建开源Hadoop数据湖架构,原始数据统一存放在HDFS系统上,引擎以Hadoop和Spark开源生态为主,存储和计算一体。缺点是需要企业自己运维和管理整套集群,成本高且集群稳定性较差。

 

在这种情况下,云上托管Hadoop数据湖架构(即EMR开源数据湖)应运而生。底层物理服务器和开源软件版本由云厂商提供和管理,数据仍统一存放在HDFS系统上,引擎以Hadoop和Spark开源生态为主。这个架构通过云上IaaS 层提升了机器层面的弹性和稳定性,使企业的整体运维成本有所下降,但企业仍然需要对HDFS系统以及服务运行状态进行管理和治理,即应用层的运维工作。

 

因为存储和计算耦合在一起,稳定性不是最优,两种资源无法独立扩展,使用成本也不是最优。同时,受到开源软件本身能力的限制,传统数据湖技术无法满足企业用户在数据规模、存储成本、查询性能以及弹性计算架构升级等方面的需求,也无法达到数据湖架构的理想目标。企业在这个时期需要更低廉的数据存储成本、更精细的数据资产管理、可共享的数据湖元数据、更实时的数据更新频率以及更强大的数据接入工具。

 

云原生时代到来,我们可以有效利用公有云的基础设施,数据湖平台也有了更多的技术选择。比如云上纯托管的存储系统逐步取代HDFS,成为数据湖的存储基础设施,并且引擎丰富度也不断扩展。

 

除了Hadoop和Spark的生态引擎之外,各云厂商还发展出面向数据湖的引擎产品。如分析类的数据湖引擎有AWS Athena和华为DLI,AI类的有AWS Sagemaker。这个架构仍然保持了一个存储和多个引擎的特性,所以统一元数据服务至关重要。

 

云原生数据湖体系

 

基于此,阿里云正式发布了云原生数据湖体系,由对象存储OSS、数据湖构建Data Lake Formation、E-MapReduce产品强强组合,提供存储与计算分离架构下,湖存储、湖加速、湖管理、湖计算的企业级数据湖解决方案。

 

  • 数据湖存储用云上的对象存储OSS加上 JindoFS 取代HDFS,提升数据规模、降低存储成本、实现计算和存储分离架构;

  • 数据湖构建(DLF)服务提供统一元数据和统一的权限管理,支持多套引擎接入;

  • EMR上Spark等计算引擎的云原生化,可以更好的利用弹性计算资源;

  • 云上的数据开发治理平台 Dataworks解决了数据湖元数据治理、数据集成、数据开发等问题。

 

数据是最好的佐证:阿里云云原生数据湖体系可支持EB级别的数据湖,存储超过10万Database、1亿Table以及10亿级别的Partition,每天支持超过30亿次的元数据服务请求,支持超过10个开源计算引擎以及MaxCompute和Hologres等云原生数仓引擎。

 

同时,阿里云数据湖存储成本相对于高效云盘下降10倍以上,查询性能相对于传统对象存储提速3倍以上,并且查询引擎有着极高的弹性,能在30秒内启动超过1000个Spark Executor。由此可见,阿里云强大的存储和计算能力共同打造了业界领先的数据湖体系。这些背后都在告诉我们:想在大数据时代占据先机,你需要有一套系统,能够在保留数据的原始信息情况下,又能快速对接多种不同的计算平台。

 

在此之际,我们推出云原生数据湖技术系列专题,将告诉大家如何基于阿里云OSS、JindoFS和数据湖构建(DataLakeFormation,DLF)等基础服务,结合阿里云上丰富的计算引擎,打造一个全新云原生数据湖体系。

 

 

数据湖存储 OSS

 

阿里云对象存储 OSS 是数据湖的统一存储层,它基于12个9的可靠性设计,可存储任意规模的数据,可对接业务应用、各类计算分析平台,非常适合企业基于OSS构建数据湖。相对于HDFS来说,OSS可以存储海量小文件,并且通过冷热分层、高密度存储、高压缩率算法等先进技术极大降低单位存储成本。同时 OSS 对Hadoop生态友好,且无缝对接阿里云各计算平台。针对数据分析场景,OSS推出 OSS Select、Shallow Copy和多版本等功能,加速数据处理速度,增强数据一致性能力。

 

数据湖加速

 

对象存储系统在架构设计上和 HDFS 等分布式文件系统存在一定差异,同时存储和计算分离架构中 OSS 是远端的存储服务,在大数据计算层面缺少对数据本地化的支持。因此,在 OSS 对象存储服务的基础上,阿里云定制了自研的大数据存储服务 —— JindoFS,极大的提升数据湖上的引擎分析性能,在TPC-DS、Terasort等常见的benchmark测试中,采用计算存储分离架构的 JindoFS 性能已经达到或超过了本地部署的HDFS。同时JindoFS 完全兼容 Hadoop 文件系统接口,给客户带来更加灵活、高效的计算存储方案,目前已验证支持Hadoop开源生态中最主流的计算服务和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。当前 JindoFS 存储服务包含在阿里云 EMR 产品中,未来 JindoFS 会有更多的产品形态服务于数据湖加速场景。

 

数据湖构建(DLF)

 

传统的数据湖架构非常强调数据的统一存储,但对数据的Schema管理缺乏必要的手段和工具,需要上层分析和计算引擎各自维护元数据,并且对数据的访问没有统一的权限管理,无法满足企业级用户的需求。数据湖构建(DLF)服务是阿里云在2020年9月推出的针对数据湖场景的核心产品,主要为了解决构建数据湖过程中用户对数据资产的管理需求。DLF 对 OSS 中存储的数据提供统一的元数据视图和统一的权限管理,并提供实时数据入湖和清洗模板,为上层的数据分析引擎提供生产级别的元数据服务。

 

云原生计算引擎

 

当前阿里云上众多云原生计算引擎已经接入或准备接入数据湖构建服务,包括阿里云EMR上的开源计算引擎Spark、Hive、Presto、Flink 以及大数据计算服务 MaxCompute、数据洞察 Databricks 引擎和数据湖分析(DLA)等。以最常用的开源引擎 Spark 为例,阿里云 Spark 可以直接对接数据湖构建的元数据服务,运行在多集群或多平台上的 Spark 任务共享同一个数据湖元数据视图。并且 EMR 为 Spark 推出了Shuffle Service服务,Spark 引擎因此获得云原生平台上的弹性扩缩容能力。云原生计算引擎结合数据湖架构可以获得更高的灵活度并极大的降低数据分析成本。

 

另外,云原生数据仓库 MaxCompute 和实时 HSAP 分析引擎 Hologres 也准备接入数据湖构建服务,未来数仓和数据湖将会发生什么样的化学反应呢?敬请期待。

 

数据湖治理

 

DataWorks数据综合治理可为阿里云客户提供统一的数据视图,用于掌握数据资产的现状、助力数据质量的提升、提高获取数据的效率、保障数据安全的合规并提升数据查询的分析效率。可以有效支撑离线大数据仓库的构建、数据联邦的查询和分析处理、海量数据的低频交互式查询和智能报表的构建,以及数据湖方案的实现。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012921921/article/details/108856004

智能推荐

JAVA开发Web Service几种框架介绍-程序员宅基地

文章浏览阅读68次。郑重声明:此文为转载来的,出处已不知了,侵告删。  在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所提供的对 Web Service服务的一种实现。)前面几项都为开源项目,而其中又以axis2与cxf所最为常用,Axis与XFir..._java开发使用的几种server的名称

C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)_怎么在devc++里面把c文件变成汇编语言-程序员宅基地

文章浏览阅读1.4k次。一、前言 C/C++的编译过程包含了四个步骤: 1. 预处理(Preprocessing) 2. 编译(Compilation) 3. 汇编(Assemble) 4..链接(Linking)二、预处理 预处理阶段主要处理一些预处理指令,比如文件包括、宏定义、条件编译。1.文件包括 文件包括就是将所有的#include..._怎么在devc++里面把c文件变成汇编语言

Pytorch深度学习实践第十二讲 RNN 课后1(LSTM)_pytorch深度学习实践12课后作业-程序员宅基地

文章浏览阅读837次,点赞3次,收藏9次。B站 刘二大人 传送门 循环神经网络(基础篇)课件链接:https://pan.baidu.com/s/1vZ27gKp8Pl-qICn_p2PaSw提取码:cxe4模型还是将输入“hello”训练输出为“ohlol”,用LSTM网络实现。按照计算图实现LSTM之后,又尝试了加入embedding的方法。加embedding的训练快,但是我的LSTM效果不如前面RNN的,不知道是我网络写的有问题还是怎么回事。LSTM的网络结构示意图和公式:根据我自己的理解写出来的LSTM模型,有不对的地方_pytorch深度学习实践12课后作业

android实训项目无线点餐系统服务器的设置,无线点餐系统的设计与实现--Android实训.doc...-程序员宅基地

文章浏览阅读208次。Android课程设计报告院 系: 计算机与信息工程学院班 级: 10级软件技术一班学 号:姓 名:PAGEPAGE 14目录TOC \o "1-3" \h \u 24017 一、系统架构 311293 二、功能分配 35248 2.1.浏览功能 326351 2.2.查询功能 314154 2.3.插入功能 328656 2.4.修改功能 41740 2.5.删除功能 41540 三、内..._android无线点餐系统

Python3 --- Scrapy安装_command "e:\python3.7.3\python.exe -u -c "import s-程序员宅基地

文章浏览阅读566次。安装方式一:如果使用的是PyCharm则File-->Settings-->Project Interpreter,选择绿色加号搜索Scrapy安装即可,如下图:这里需要注意Manage Repositories可以配置成: https://pypi.douban.com/simple/ http://mirrors.aliyun.com/pypi/simple/..._command "e:\python3.7.3\python.exe -u -c "import setuptools, tokenize;__file

cookie和session的区别(简单理解)_cookie和session区别-程序员宅基地

文章浏览阅读471次。由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保..._cookie和session区别

随便推点

OwlCarousel使用-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏19次。参考:http://www.jq22.com/jquery-info6010使用方法Owl Carousel 2是上一版Owl Carousel的升级版本。Owl Carousel 2可以让你创建漂亮的响应式旋转木马的jQuery插件,它支持移动触摸屏,功能十分强大。Owl的新特性有: 可以无限循环 项目可以居中显示 灵活的速度控制 多级别的paddin..._owlcarousel

【深度学习】使用caffeNet训练自己的数据集(caffe框架)-程序员宅基地

文章浏览阅读3.5k次。主要参考:官方网址:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html数据集及第一部分参考网址:http://www.lxway.com/4010652262.htm主要步骤:1. 准备数据集2. 标记数据集3. 创建lmdb格式的数据4. 计算均值5. 设置网络及求解器6. 运行求解由于imagenet的数据集太大,博主..._caffenet

SpringBoot集成Quartz 2.3.1动态管理定时任务_springboot实现动态管理quartz-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏12次。我写了一个简单的Demo项目,有需要的文末可获取项目github地址,该项目我会一直保持更新。基于quartz2.3.1实现动态管理定时任务。使用swagger实现接口文档。前后端统一使用JSON格式交互。使用Hutool工具类直接连接数据库,避免Job任务中不能使用Autowired问题。swagger文档如下图:后续文章创建JobDetail(JobBuilder详解)创建CronTrigger(TriggerBuilder详解)_springboot实现动态管理quartz

C#控制利用模板文件通过BarTender控制斑马打印机打印_c# 直接调用斑马打印机打印固定模板-程序员宅基地

文章浏览阅读2k次。重点在后面:https://blog.csdn.net/z_344791576/article/details/46328443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159546478119725219951536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=15954647811972521995_c# 直接调用斑马打印机打印固定模板

matlab multiple animatedline,matlab画图详解-程序员宅基地

文章浏览阅读926次。一. 二维图形(Two dimensional plotting)1. 基本绘图函数(Basic plotting function):Plot,semilogx,semilogy, loglog,polar, plotyy(1). 单矢量绘图(single vectorplotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。例1:单矢量绘图y=[0 0.6 2...._animatedline 添加图例

推荐文章

热门文章

相关标签