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

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生大数据计算服务 MaxCompute,5000CU*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

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

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
22天前
|
分布式计算 大数据 数据处理
经典大数据处理框架与通用架构对比
【6月更文挑战第15天】本文介绍Apache Beam是谷歌开源的统一数据处理框架,提供可移植API,支持批处理和流处理。与其他架构相比,Lambda和Kappa分别专注于实时和流处理,而Beam在两者之间提供平衡,具备高实时性和数据一致性,但复杂性较高。选择架构应基于业务需求和场景。
34 3
经典大数据处理框架与通用架构对比
|
23天前
|
存储 分布式计算 大数据
数据仓库与数据湖在大数据架构中的角色与应用
在大数据时代,数据仓库和数据湖分别以结构化数据管理和原始数据存储见长,共同助力企业数据分析。数据仓库通过ETL处理支持OLAP查询,适用于历史分析、BI报表和预测分析;而数据湖则存储多样化的原始数据,便于数据探索和实验。随着技术发展,湖仓一体成为趋势,融合两者的优点,如Delta Lake和Hudi,实现数据全生命周期管理。企业应根据自身需求选择合适的数据架构,以释放数据潜力。【6月更文挑战第12天】
52 5
|
2月前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。
|
2月前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
16天前
|
存储 数据采集 数据挖掘
“湖仓一体架构及其应用”写作框架,系统架构设计师
随着5G、大数据、人工智能、物联网等技术的不断成熟,各行各业的业务场景日益复杂,企业数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式增长趋势。在这一背景下,企业数据管理不再局限于传统的结构化OLTP(On-Line Transaction Processing)数据交易过程,而是提出了多样化、异质性数据的实时处理要求。传统的数据湖(Data Lake)在事务一致性及实时处理方面有所欠缺,而数据仓库(Data Warehouse)也无法应对高并发、多数据类型的处理。因此,支持事务一致性、提供高并发实时处理及分析能力的湖仓一体(Lake House)架构应运而生。湖仓一体架构在成本、
|
4天前
|
存储 数据可视化 大数据
大数据平台架构设计与实施
【7月更文挑战第3天】本文探讨了大数据平台的关键技术,包括数据采集(如Kafka、Flume)、存储(HDFS、HBase、Cassandra)、处理(Hadoop、Spark)、分析挖掘及可视化工具。架构设计涉及数据收集、存储、处理、分析和应用层,强调各层次的协同与扩展性。实施步骤涵盖需求分析、技术选型、架构设计、系统部署、数据迁移、应用开发测试及上线运维,旨在为企业决策提供强有力的数据支持。
|
8天前
|
运维 Kubernetes 安全
自动化运维在现代IT架构中的角色与实践
【6月更文挑战第28天】随着企业对信息技术的依赖日益加深,高效、可靠的运维体系变得至关重要。本文将探讨自动化运维如何优化现代IT架构,提升运维效率和系统稳定性。我们将从实际案例出发,分析自动化工具的选择、部署策略以及面临的挑战,为读者提供一套可行的自动化运维解决方案。
|
9天前
|
运维 Kubernetes 云计算
云计算时代的运维革新:容器化与微服务架构的融合之道
在云计算技术飞速发展的当下,企业IT运维面临前所未有的挑战与机遇。传统的运维模式已难以满足现代业务对敏捷性、可伸缩性和自动化的需求。本文深入探讨了容器化技术和微服务架构如何共同推动运维领域的革命,通过数据支持和科学分析,揭示了这一融合趋势如何提高运维效率、降低风险并促进创新。
|
9天前
|
SQL 存储 运维
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
随着网易游戏品类及产品的快速发展,游戏数据分析场景面临着越来越多的挑战,为了保证系统性能和 SLA,要求引入新的组件来解决特定业务场景问题。为此,网易游戏引入 Apache Doris 构建了全新的湖仓一体架构。经过不断地扩张,目前已发展至十余集群、为内部上百个项目提供了稳定可靠的数据服务、日均查询量数百万次,整体查询性能得到 10-20 倍提升。
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
|
2天前
|
数据采集 监控 关系型数据库
大数据运维之数据质量管理
大数据运维之数据质量管理
7 0