大数据架构&运维篇(一)| 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
表格存储 Tablestore,50G 2个月
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习大数据架构&运维篇。

开发者学堂课程【大数据架构&运维:大数据架构&运维篇(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1204/detail/18171


大数据架构&运维篇

 

内容介绍

一、服务团队介绍

二、大数据产品介绍

三、大数据运维问题案例

 

一、服务团队介绍

首先是服务团队的介绍。金融 TAM 大数据专家服务团队是通过金融行业大数据专家服务 解决方案,帮助数据中台客户解决大数据的告警对接、容量管理、性能调优、业务稳定性治理、环境账号权限体系管理、数据迁移、运维巡检、变更管控、性能测试、故障应急、容灾演练以及护航保障等大数据 SRE 体系建设需求。为超过十多家金融机构客户提供专业的大数据 SRE 体系建设服务。支持客户重点打造具备生产支撑、应用支持、平台治理、业务护航保障和技术指导能力的大数据专家团队。

image.png

团队服务的主要的使用场景包括大数据的业务告警对接、大数据的容量管理、大数据的 SRE 体系建设、运维赋能、技术指导以及解决方案的方案咨询。目前平台主打的客户画像有大型的保险公司、大型银行以及证券、基金公司。其中的标杆案例有太平洋保险、四川农信、广东农信、贵阳银行、瑞士再保险以及诺亚财富。

 

二、大数据产品介绍

其次是阿里大数剧产品 MAX computer + data work 的产品介绍。 MAX computer 大数据计算服务,原 ODPS 是基于飞天分布式平台, 由阿里云自主研发的海量数据离线处理服务,提供针对 TB/PB 级别数据的,对实时性要求不高的批量处理场景。主要用于日志分析、 机器学习、数据仓库、数据挖掘、商业智能等领域。

(1).  MAX computer 具有分布式架构,规模可以根据需要进行平行扩展。

(2). 自动存储容错机制,保证数据高可靠性。

(3). 所有的计算在沙箱中运行,保障了数据高安全性。

(4). 以 RESTFUL API 的方式提供服务,目前 MAX computer 提供了 Java 和 Python 的 SDK 。

(5). 支持高并发、高吞吐量的数据上传下载。目前通过 turn down load 和 turn off load 等可提供高存储量的数据上传下载。

(6). 提供离线计算、机器学习两类模型及计算服务。

(7). 支持基于 SQL 、 Mapreduce 、 Graph 、 MPI 等多种编程模型的数据处理方式。

(8). 支持多租户,多个用户可以协同分析的数据。

(9). 支持基于 ACL 和 policy 的用户权限管理,可以配置灵活的数据访问控制策略,防止数据越权访问。

其中 MAX compute 核心的抽象概念和传统的结构化数据库 Mysql 类似。 project 类似于 database 或者 schema ,主要是用于用户 隔离和访问控制的主要边界。 相对于结构化数据 Mysql  ,通过 table 还有分区 partition 等进行一个分区。对于非结构化数据是通过 volume 来进行存储。 对于使用的文件, UDF , 或者使用的 JAR 包和 Python 脚本,可以通过 UDF 还有 resource 来进行存储。比如用户想查看项目空间下的 JAR 包和文件资源,可以通过 list resource 来查看。对于提供的飞天集群的服务器进行维护,可以通过  job ,  Instance 表示抽象可执行实体和运行实例。 tunnel upload / download 表会话, event 是作用于表删除和修改等事件的追踪和 user 或 role ,用于管理用户对 Project 内实体的访问控制和授权。前面说到了和 resource 来进行存储。

①盘古

image.png

盘古是一个分布式文件系统。当一个客户( client )的请求,系统会首先会聚到盘古 master ,对数据进行校验和寻址后,返回到一个 chunkserver 数据块的地址。 client 会和 chunk server 进行读写的操作,从而拉取真正需要的块数据。在左下角第一个和第二个块中都拥有一个绿色的节点,而第二个和第三个块中都拥有一个紫色的节点。 其实是用户的数据都是一式三份保存在 chunk server 上的,可以保证数据的高安全性和高可靠性。在一台物理机,一台 chunk server 的节点处于 down 秒或者不可连接的状态时,还会保留其他的数据。盘古是一个分布式的文件系统。 盘古系统设计目标是将大量通用机器的存储资源聚合在一起,为用户提供大规模、高可靠、高可用、高吞吐量和可扩展的存储服务,是飞天平台内核中的重要组成部分。在盘古系统中,文件系统的元数据储存在多个主服务器 master 上,而文件的内容存储在大量的块服务器 Chunkserver 上,并一式三份保存在 Chunkserver 上的。

②伏羲

image.png

飞天平台中另一个较重要的功能是资源管理与任务调度(伏羲)。当一个 client 请求任务时,会先到伏羲 master 。其中下面的4台机器如果想调用到机器上的 CPU 、内存和 JOB 资源,都需要在机器上去装有伏羲的 agent 的代理进程。4台机器上都装有一个粉红色的伏羲 agent 。下面是有 app master 和 app worker ,并且有两种颜色。其实是一个 master 和 master 的汇报机制。伏羲  master 会把每个任务在其中的伏羲 agent 的机器上拉起一个 app master的节点, app master 在伏羲 master 申请到资源以后,获取其他的伏羲 agent 的机器上去启动app worker ,并且APP master 会负责跟踪任务的开始,结束运行状态。而真正工作的 app worker 会实时的和 APP master 进行任务状态的交互。 一个绿色的块上的app master 在第二台机器上启动了两个 APP worker 的绿色节点, 并在第三台机器上又启动了一个 APP worker 结点。而右边的黄色的  app master ,只申请到两个节点,分别在第4台和第3台机器上启动了各一个 appwork 的节点。伏羲是飞天平台内核中负责资源管理和任务调度的模块,同时也是为应用开发提供一套编程的基本框架。伏羲同时支持响应速度在线服务和强调处理数据吞吐量的离线服务。在伏羲中,分别简称为 fuxi job 和 service Job 。伏羲中运用了 master 和 worker 的工作模型。其中 master 的负责进行资源申请和调度,为 worker 创建工作计划并监控 worker 生命周期。 worker 负责执行具体的工作计划,并及时向 master 的汇报工作状态。此外, master  支持多级模式,即 master 可以隶属于另一个master 之下。

③MAXCompute 系统架构

image.png

在上图中的 max computer 具有4层,分别有客户端层、 接入层、控制层和计算与存储层。客户端层顾名思义是通过 resetfui API , Java SDK 和 Python 的SDK 和 data work ,或者通过 CLT ,  OTS 的客户端等去接入 maX computer 。通过 API 去提供一个接入的服务, api  对应的是整个 SLB 的服务,会挂载多台 front node 平台,去进行 LVS 的负载均衡,并且提供一个 HTTP server 的服务。 在控制层也是 max computer 较核心的一个层面,由 worker 和 schedule 、 executor 核心组件来构成。并且 worker 是可以扩展的。除了 schedule 不能扩展以外, executor 也可以同样的横向拉齐的扩展。  Meta  元数据 ots ,其涉及到另外一款阿里 云的产品 ots 。证明了 Mysql 的元数据是存放在 ots 中。如果 ots 存在问题,会影响到 Mysql 的一个整体的稳定和可用性。当任务在控制层或逻辑层 worker  通过了 worker 、 schedule 、 executor 的编译后,作业就会有计划的提交到计算与存储层。从而对任务进行计算。作业的基本流程,当用户提交一个作业请求时,接入层的 web 服务器查询,获取已注册的 worker 的 ip 地址, 并随机选择其中的某些 worker 发送 API 请求。 worker 将请求发送给schedule,由其负责调度和流控。 executor 会主动轮询 schedule 的队列。若资源满足条件,则开始执行任务,并将任务执行状态反馈给 schedule。伏羲在接到 executor 的作业请求后,在满足条件的情况下会到计算层拉起 worker 。在控制层中每一层次都会进行扩展,逻辑层中三个重要的角色 worker 、scheduler 、 Executor 。 worker 作为作业接收器。处理所有的 restful 请求,包括用户空间管理、资源管理、操作、作业管理等。对于 SQL 、 MAPREDUCE 、 GRAPH 等启动 FUXI 任务的作业,会提交到 schedule 进一步的处理。 schedule 是作业调度器。 schedule 负责 instance 的调度,包括将 instance 分解为 task ,对等待提交的 task 进行排序,以及向计算机集群伏羲master  询问资源占用情况以进行流控。当伏羲的槽位满时应停止响应 executor 的  task 申请。作业执行器是executor 负责启动 SQL 和 MR task ,向计算集群 fuxi master 提交 fuxi 任务, 并监控任务的运行。

④max computer 作业流程

image.png

当第一步用户提交请求,会到前端的节点 HTTP server 的 frontend 模型,经过用户鉴权,鉴定客户是否有操作 SQL 的权限。当权限符合时, 会由第3步转发请求,转发到控制层或者叫逻辑层的 odps worker 。 odps worker 去检查,并不是一个同步性申请权限或者去建表的语句。会发送一个异步执行请求到 schedule ,同时在 5.1 可以看到,还会返回提交成功, 并且定期的查询执行的状态, 最终返回查询的执行的结果。在第6步里, schedule 会进行持续化的请求加入,把作业加入作业队列,并进行调度作业。 在第 7步,提交  task 执行请求到executor , executor 会根据任务的类型和版本寻找对应的服务进程进行处理。第9步当 SQL 的子进程去编译优化 SQL 后,会提交到伏羲 JOB , 再到计算集群, 由伏羲 job 来得到最终的结果。到12步结束返回。 客户会得到一个正确的服务执行成功的流程。数据中台存在三大核心问题,数据重复存储,数据不集中,各种存储系统之间重复存储,重复计算。数据孤岛,各业务部门的数据散落多个集群里面,彼此之间数据不通,授权共享太难。数据无保障,数据质量、数据稳定性无保障,业务使用数据需承担较大的风险。 面对如此问题,解决方案是  data work +  max computer ,解决三大核心问题。

image.png

下面是 datawork 四个阶段八大模块。 元数据中心和数据汇聚层。将数据抽取过来,由数据集成功能运作。 其中最具有代表的是离线数据同步,顾名思义就是 t  +  1的数据采集。实时数据采集,顾名思义就是实时,还有其他的数据。比如互联网数据采集,还有元数据上报同步,比如 FTP 自动上报同步,端的采集,比如 loT 设备, b 端的数据设备。 数据研发是整套的开发流程,工作流开发,可以把整个任务组成一个 DAG 图,对于开发流程来较为友好,可以组成一个业务模板。数据表的建模,版本管理,可以看到发布的版本的数量。流式任务的开发固然是和 Blink 和 Flink 相关联的。预编译和代码仓库很好理解。类似于 Githubidea的工作开发发布管理是指标准模式下的功能点。将在标准模式下会有两个项目空间去区分测试和生产。此功能在简单模式下是没有的。调度配置是每天的离线调度,以分时日月周,包括到周级别,最小可以 支持 5 分钟维度的调度。监控运维是指工作流。协同开发是指多人的 IDE 编译。基线管理是对工作流的预警,智能监控报警可以去对外吐露一些合警,比如到钉钉或者一些邮件的形式。运维大盘可以看到任务的整体运行情况,实时分析,目前还需和快客 BH 做协作。 机器学习针对阿里大数据产品——  π 。数据治理,数据如何治理?数据从哪里来,到哪里去。因此提供了数据地图的功能成本管理、资产门户、资产报告、维表管理以及数据目录。对于数据质量来说,对于实时和离线数据的监控,对脏数据的预判,包括智能数据探查、离线实时数据、数据校验、代码规则校验、变更通知、故障预警。对于数据安全来说,数据权限,比如放开列给其他的用户使用。数据审计,可以返回查看用户是否访问敏感的数据。安全达标是和数据权限相关联,达标才能看到对应的列。数据脱敏是指如身份证、手机号等来进行掩盖。数据服务就是指通过开放共享数据服务,提供接口给第三方来调用。数据 BI 的展示,以及大屏的展示和行业的解决方案,以上构成了 datawork 的四个阶段和8大模块。权限管理,是计费和计量在公共云中使用的。而租户、账号、权限三个相关联的。先有租户, 租户里面才会有账号,账号才会涉及到权限的划分,去设有一些管理员只读账号等其他的权限。

image.png

数据集成目前可以支持 20+种数据源 其中包括了关系型数据库、大数据存储、非结构化存储、 NO SQL 数据库等,目前已经覆盖了 90% 的常用数据源,并且可以做到自定义读写插件,且支持经典的专有混合等网络环境, 对于阿里云数据库实例或本地部署,或者是公网可访问或者不可访问等各种复杂的网络条件,可做到可视化的配置与监控,可以通过向导模式、 脚本模式、 shell + dataX 的方式去进行配置。同时支持多种的同步方式,基于实时或批量,全量或者增量,同步速度使资源组而定,做到横向扩展。

image.png

在数据集成-大数据的搬运工可以了解数据从哪里来,到哪里去,通过数据集成导入到更多的数据类型。目前支持的关系型数据库有SQLserver 、PG 、SQL 、达梦、drds 、 Mysql ,  oracle 以及 DB2 包括 hybroddb for mysql ,  hybriddb for postgreSQL  、大数据存储包括阿里的大数据, MAX computer 和开源的HDFS 。非结构化存储包括有 OSS、FTP 和多媒体文件。 NOSQL  包括开源的 Hbase 和阿里的 OTS 、 Mongodb 等。通过抽取转换,跨公网,包括实施或者离线的模式去导入到对应的数据库。目前支持 400 对异构数据源的离线同步,而且支持到分钟级、小时级、天级的调度。

image.png

数据研发的全流程是智能研发 IDE  可以做到多团队的协作开发。 目前可以在 data work 的开发界面做到数据探查、数据接入、业务流程、数据开发、代码调试、代码部署、调度系统、生产运维以及质量监控,包括对于结构化、非结构化数据的处理,实时离线任务一体化开发。对于标准模式的开发,生产环境的可隔离,包括对于百万级 ETL作业的稳定调度和生产环境的智能监控预警。

image.pngimage.png

目前的数据开发的全局调度,是一个精细的周期控制。可以调度支持千万级任务并发调度。复杂的时间粒度,满足不同的场景。支持分钟、小时、天、周、月的周期性调度。上面是周和小时的两个例子。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
27天前
|
机器学习/深度学习 人工智能 运维
云架构不是养祖宗,智能运维教你省心又省钱
云架构不是养祖宗,智能运维教你省心又省钱
54 2
|
14天前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
3月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
5月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
4月前
|
存储 SQL 分布式计算
19章构建企业级大数据平台:从架构设计到数据治理的完整链路
开源社区: 贡献者路径:从提交Issue到成为Committer 会议演讲:通过DataWorks Summit提升影响力 标准制定: 白皮书撰写:通过DAMA数据治理框架认证 专利布局:通过架构设计专利构建技术壁垒
|
1月前
|
存储 分布式计算 资源调度
【赵渝强老师】阿里云大数据MaxCompute的体系架构
阿里云MaxCompute是快速、全托管的EB级数据仓库解决方案,适用于离线计算场景。它由计算与存储层、逻辑层、接入层和客户端四部分组成,支持多种计算任务的统一调度与管理。
108 1
|
2月前
|
SQL 存储 监控
流处理 or 批处理?大数据架构还需要流批一体吗?
简介:流处理与批处理曾是实时监控与深度分析的两大支柱,但二者在数据、代码与资源上的割裂,导致维护成本高、效率低。随着业务对数据实时性与深度分析的双重需求提升,传统架构难以为继,流批一体应运而生。它旨在通过逻辑、存储与资源的统一,实现一套系统、一套代码同时支持实时与离线处理,提升效率与一致性,成为未来大数据架构的发展方向。
|
3月前
|
运维 监控 Cloud Native
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
62 1
|
3月前
|
消息中间件 分布式计算 大数据
“一上来就搞大数据架构?等等,你真想清楚了吗?”
“一上来就搞大数据架构?等等,你真想清楚了吗?”
63 1
|
4月前
|
架构师 Oracle 大数据
从大数据时代变迁到数据架构师的精通之路
无论从事何种职业,自学能力都显得尤为重要。为了不断提升自己,我们可以尝试建立一套个性化的知识目录或索引,通过它来发现自身的不足,并有针对性地进行学习。对于数据架构师而言,他们需要掌握的知识领域广泛而深入,不仅包括硬件、网络、安全等基础技术,还要了解应用层面,并熟练掌握至少一门编程语言。同时,深入理解数据库技术、具备大数据实操经验以及精通数据仓库建模和ELT技术也是必不可少的。只有这样,数据架构师才能具备足够的深度和广度,应对复杂的业务和技术挑战。 构建个人知识体系是数据架构师在学习和工作中的一项重要任务。通过系统化、不断深化的知识积累,数据架构师能够有效应对快速变化的商业环境和技术革新,进一

热门文章

最新文章