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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 快速学习大数据架构&运维篇。

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

课程地址: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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
7天前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
|
1月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
90 1
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
57 3
|
7天前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
【赵渝强老师】基于大数据组件的平台架构
|
21天前
|
机器学习/深度学习 人工智能 运维
智能运维:大数据与AI的融合之道###
【10月更文挑战第20天】 运维领域正经历一场静悄悄的变革,大数据与人工智能的深度融合正重塑着传统的运维模式。本文探讨了智能运维如何借助大数据分析和机器学习算法,实现从被动响应到主动预防的转变,提升系统稳定性和效率的同时,降低了运维成本。通过实例解析,揭示智能运维在现代IT架构中的核心价值,为读者提供一份关于未来运维趋势的深刻洞察。 ###
74 10
|
15天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
51 1
|
30天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
57 3
|
8天前
|
机器学习/深度学习 运维 监控
智能运维在现代IT架构中的转型之路####
【10月更文挑战第29天】 本文旨在探讨智能运维(AIOps)如何成为现代IT架构不可或缺的一部分,通过分析其核心价值、关键技术及实践案例,揭示AIOps在提升系统稳定性、优化资源配置及加速故障响应中的关键作用。不同于传统运维模式的被动响应,智能运维强调预测性维护与自动化处理,为企业数字化转型提供强有力的技术支撑。 ####
36 0
|
1月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
25 9
|
1月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
61 1