付网站首期合同款怎么做分录,中国建设官网登录入口,linux做网站服务器吗,邯郸公司起名简介#xff1a; 2021云栖大会云原生企业级数据湖专场#xff0c;阿里云智能高级产品专家李冰为我们带来《数据湖构建与计算》的分享。本文主要从数据的入湖和管理、引擎的选择展开介绍了数据湖方案降本增效的特性。
摘要#xff1a;2021云栖大会云原生企业级数据湖专场 2021云栖大会云原生企业级数据湖专场阿里云智能高级产品专家李冰为我们带来《数据湖构建与计算》的分享。本文主要从数据的入湖和管理、引擎的选择展开介绍了数据湖方案降本增效的特性。
摘要2021云栖大会云原生企业级数据湖专场阿里云智能高级产品专家李冰为我们带来《数据湖构建与计算》的分享。 本文主要从数据的入湖和管理、引擎的选择展开分享了数据湖方案降本增效的特性。 以下是精彩视频内容整理
一、面临的挑战
数据如何入湖和管理引擎如何选择
我们在前面的分享当中了解到了OSS将作为数据湖计算当中的中心化的存储。其实数据湖计算本质上就是输入来自各种云上的数据源经过一系列的转化运算最终能够支持上层计算的 BI 和 AI 的分析。那在整个数据湖的构建当中其实我们需要考虑两个问题一个是各种各样的数据如何流入到 OSS 的存储当中流入以后需要做怎样的管理和规划第二个就是为了支持上层的业务如何选择计算引擎。接下来我们带着这两个问题开始今天的分享。 二、数据湖的构建
如何进行数据湖构建与管理
如何搭建数据湖
存储配置
开通 OSS 存储配置存储
元数据配置
元数据服务搭建创建元数据迁移元数据
数据迁移
实时数据/全量数据入湖数据清洗更新元数据
安全管理
数据权限配置数据审计
数据计算与分析
交互式分析数据仓库实时分析可视化报表分析机器学习
需要解决的问题
元数据服务搭建复杂维护成本较高实时数据入湖开发周期长运维成本高需要构建流计算任务SparkStreaming/Flink 对数据进行清理多个计算引擎需要配置多套元数据且需要考虑元数据同步同步的准确性实时性等问题湖上的不同计算引擎使用了不同的权限体系同一个资源的权限需要在多个引擎多次配置配置和维护成本高
首先我们来看数据湖的构建。如果我们没有一个标准的云产品我们在云上怎么样去搭建数据湖呢我拆解了一下大概需要五部分。
首先要选择一个存储我们开通了 OSS 服务以后选择一个 burket然后做一些基本的配置。第二步就是数据已经存到 OSS 以后如何管理数据的元数据。这里面可能会涉及到目录的编排、scheme 的设计等。这一步其实是非常重要的因为它会关系到后面的运算。在数据湖计算当中存储是统一计算是支持多类计算引擎的所以我们在设计元数据的时候需要考虑如何让它被所有的计算引擎去消费当计算引擎对数据做了变更以后元数据怎么样做到同步保持一致性。元数据设计完以后我们就需要考虑重头戏--数据的迁移。我们知道数据通常分为两大部分一个是原始的历史数据怎么全量到云上这部分我们会通过一些工具一次性的把它导入到 OSS 当中还有一个需要去考虑的就是增量数据怎么样能够实时的入湖入湖以后选择什么样的格式这些数据进入数据湖以后是否需要修改修改的话对上面的引擎有没有影响数据变了以后对元数据怎么样把这个消息带过去以上是我们在做数据迁移时需要考虑和解决的问题。
然后就是安全我们知道数据湖虽然是开放的但是访问权限是有限制的不能所有用户都可以访问这些数据所以我们要有一个统一的权限规划。这里面我们需要考虑的问题是这个权限是否可以被所有的引擎所读到和了解如果我用了五种引擎每一种引擎都设置他自己的权限和配置这样对于使用和运维其实都是非常大的一个困扰。 数据湖构建 Data Lake Formation
元数据管理
统一元数据管理对接多种计算引擎兼容开源生态API自动生成元数据降低使用成本提供一键式元数据迁移方案
访问控制
集中数据访问权限控制多引擎统一集中式赋权数据访问日志审计统计数据访问信息
数据入湖
支持多种数据源入湖MySQL、Polardb、SLS、OTS、Kafka等离线/实时入湖支持Delta/Hudi等多种数据湖格式
数据探索
支持便捷的数据探查能力快速对湖内OSS数据进行探索与分析支持 Spark SQL 语法
基于前面的这些问题在阿里云上我们提供了这样一个产品帮助大家来完成数据湖的构建。这个产品叫 Data Lake Formation简称 DLF。DLF 主要提供了四个能力。首先是数据的入湖我们知道数据源是多种多样的所以 DLF 数据入湖的这个功能也是支持了阿里云上很多比较通用和标准的数据源比如 MySQLSLS、 Kafka 等等。针对入湖用户可以选择不同的入湖方式。离线还是实时、数据以什么格式进入包括在入湖的过程当中是否加入一些简单的计算对这些数据做一些清理或者加入一些自定义 UDF以上这些能力在 DLF 当中都是支持的。然后数据进入以后元数据的部分我们对外会提供了一个统一的元数据接口。这个接口是可以被阿里云上的大部分引擎去消费的包括 EMR、Databricks、PAI、 MaxCompute、Hologres 等等。并且这个元数据是支持一键同步的比如我在 RDS 里面有一份元数据转化成数据湖的方案以后库表信息可以通过一键的方式同步到 DLF 当中。第三点就是权限的配置用户只需要设置一次比如某一个用户对某一份数据有怎样的读取权限设置好之后就可以被上面所有的引擎所共用。在这基础之上DLF 还提供一个叫数据探索的能力这个是一个开箱即用的功能。用户数据进入到数据湖以后可以通过它做一个快速的验证。可以输入标准的 Spark SQL 语法然后就可以查询出结果是不是用户所需要的来验证这个数据的正确性。 三、数据湖的计算
阿里云 EMR 开源大数据平台
说完了前面的数据湖构建以后下一部分就是计算。其实在阿里云上我们有一个产品叫 EMR,与其说 EMR 是一个产品不如说它更像是一个开源大数据平台。在这个平台上我们提供非常多的 Hadoop 开源生态引擎用户几乎可以在这里面找到所有能够满足业务场景的引擎。首先 EMR 是构建在云原生的基础资源之上的它是构建在 ECS 之上的如果你有 ACK 的容器服务也可以部署在容器上。然后存储的话可以存到 OSS 上然后有一个基础的管控平台在这个平台上会给用户提供一些运维部署、资源管理、弹性伸缩等等这样的能力最终目的就是帮助用户更简单更容易的去运维大数据集群。然后 EMR 的引擎部分一共提供了几十种不同的丰富的引擎这里面罗列了几个比较代表性的用户可以根据不同的业务需求去选择。值得一提的是所有的引擎都可以作为数据湖的引擎可以去消费 OSS 数据把 OSS 作为它的最终存储。同时它可以对接到 DLF 上面用户做完了元数据的配置、权限的配置后就可以很方便的在 EMR 上去切换不同的引擎这样可以达到元数据的统一和数据的统一。 主要解决两大问题
降低成本
硬件成本改造和使用成本运维成本
提高效率
性能资源利用率可扩展性
我们自己构建大数据平台的时候其实比较关心的核心的两个问题一个是成本还有一个就是效率。这个也是 EMR 主要去解决的两个问题。这里面的成本其实包括三个方面硬件的成本、软件的成本还有后期运维的成本。相信这些是大家在线下去构建自己的大数据平台当中一定会遇到的非常头疼和急需面对的问题。另外与它相对应的效率我们希望能够最大限度的去提高资源的利用率。同时希望集群是具有灵活性和可扩展性的。接下来我们看一下 EMR 是怎么样去解决这两个问题的。
全新容器化部署EMR on ACK
节省成本
复用已有 ACK 集群的空闲资源大数据和在线应用程序共享集群资源削峰填谷
简化运维
一套运维体系一套集群管理
提升效率
利用 ACK/ECI 的资源快速交付能力资源获取时间更短结合自研 Remote Shuffle ServiceSpark 内核及资源调度优化满足生产级业务需求首先EMR 在今年推出了一个新的特性就是容器化的部署方案。之前传统的 EMR 都是部署在 ECS 上的现在 EMR 可以部署在 ACK 上。这里的 ACK 其实是一个已有的 ACK 集群。随着大数据生态的发展Kubernetes 这个技术也越来越成熟很多用户会把自己在线的业务甚至是一些在线的作业去跑在 ACK 集群上。但是在线的业务有一个特点它使用的时间通常在白天这样就造成了晚上这部分计算资源的空闲。相比较大数据而言很多是为了支持报表类的业务所以它使用资源的高峰期大多在晚上。如果能够把大数据作业和在线作业跑在一套系统里面对用户来说就达到了削峰填谷、资源重复利用的能力。同时从运维的角度只需要运维一套 ACK 的集群这样就可以统一运维体系降低运维成本。从 EMR 这一侧的引擎来说从开源上大数据跑在 ACK 上其实还是一个相对初期的阶段可能它有一些特性在企业级的应用上是没办法支持的。基于这一点EMR 也做了很多引擎上的优化包括提供了这种 Remote Shuffle 的能力它主要是为了解决在 ACK 上的挂盘问题另外在调度上面也做了很多深入的优化能够满足用户大数据量的企业级的查询分析需求。
弹性伸缩
EMR 集群固定资源 - 固定资源 弹性动态资源
和线下的 IDC 集群相比云上最显著的一个特性就是动态和可扩展性。为了最大限度的发挥这部分的价值 EMR 提供了集群级别的弹性伸缩。简单来说就是比如原先有一个集群这个集群是固定的假设有100台节点7×24小时去跑。但其实在这100台节点当中可能大部分时间只用了里面50%的能力这个时候会把集群做一个拆分一部分只保留固定的计算资源其他的高峰期则用一个弹性的资源去弥补这样就可以从硬件资源的使用上面去压缩成本。另外在 EMR 里面对于弹性资源的部分是支持成本优化模式的。在 ECS 里面它有一种实力叫挑战式的实力这种实力它的收费方式会比按量付费更便宜这样就可以进一步的压缩计算的成本真正做到按需创建机器资源用户去谈这部分资源的时候也可以按照自己的集群的负载或者是时间段去灵活的控制。 引擎优化
Spark
支持Spark 3.1.2相对社区版Spark 2性能提升3倍以上针对复杂分析场景优化TPC-DS较社区版提速59%在ACK场景下优化了调度性能较社区版K8S有4倍提升
Hive
TPC-DS 特定 SQL 达到数倍性能提升整体性能提升19%针对大表 Join 的性能优化
JindoFS
OSS 访问加速提供标准的 HDFS 访问接口支持 EMR 所有引擎冷热数据自动分离对计算层透明对文件的 ls/delete/rename 等操作较开源方案性能数倍提升
传统的大数据集群是跑在 Hadoop 生态下面的它本身的存储是 HDFS 转换到数据湖以后当你的介质变成了不是本地的 OSS 时需要引擎上面做很多支持。我列举了几个比较有代表性的比如 Spark、Hive在官方的 TPC-DS上面可以看到我们的成绩是优于社区数倍的。另外值得一提的就是 JindoFS 这个组件是 EMR 自研的一个组件可以把它看做承上启下的作用。对下面底层的话它的数据还是存储在 OSS 上面对上层的引擎除了在接口上面的支持以外更多的是对 OSS 的访问做了一个加速并且让引擎能够很透明的去使用 OSS。数据落进来以后可以做到自动的冷热分离并且我们和 OSS 团队做了深度的优化OSS 在做一些文件级别的操作尤其是小文件的操作上面性能都要比开源的方案或者甚至有的场景下会比 HDFS 的性能更好。 丰富的生态
更多开源组件
ClickHouse、StarRocks、EMR StudioNotebookAirFlow、Spark 3.0 等
深度云产品集成
阿里云 DataWorks、阿里云容器服务ACK、云监控等
支持更多三方产品
Databricks、Cloudera、Confluent、神策等
EMR 更多的是一个开源的开放的大数据平台在这个平台上面不仅有开源的产品这部分的组件会根据市场情况逐步增加到平台中。除此以外作为阿里云上的一款产品EMR 会和像 DataWorks、ACK、甚至还有云监控等产品做一个深度的集成方便大家能充分利用阿里云上其他云产品的特性。除此之外EMR 还会支持更多的第三方产品比如 Databricks、Cloudera、Confluent、神策等来让平台有更好的扩展性和可集成性。
使用 EMR 降本增效
使用弹性伸缩动态调整集群规模按需购买 ECS 资源利用已有 ACK 集群大数据和在线应用共享计算资源EMR 计算引擎的优化提高任务执行效率OSS 访问利器 JindoFS让迁移更平滑
最后总结一下其实 EMR 能够达到降本增效主要是从硬件和软件两方面。硬件上让计算更按需进行不会有过多资源上的浪费软件上通过提升引擎的性能来做到加速让单位的计算的成本更低。
四、小结
回到最开始提到的问题构建数据湖的时候我们首先会使用 DLF 来完成数据的入湖和元数据的管理通过 EMR 上丰富的引擎来构建计算平台然后利用 OSS 的存储来发挥最大的价值做数据的冷热分层从而使整体的数据湖方案能够达到降本增效的目的。 原文链接 本文为阿里云原创内容未经允许不得转载。