当前位置: 首页 > news >正文

【赵渝强老师】阿里云大数据MaxCompute的体系架构

1

阿里云提供的大数据计算服务MaxCompute(原名ODPS,Open Data Processing Service的简称)是一种快速、完全托管的EB级数据仓库解决方案,主要用于实时性要求不高的离线计算分布式处理场景。因此,大数据计算服务MaxCompute不能用于数据的实时处理场景中。MaxCompute由四部分组成,分别是计算与存储层(MaxCompute Core)、逻辑层 (MaxCompute Server)、接入层 (MaxCompute FrontEnd)以及客户端 (MaxCompute Client)。MaxCompute的整体架构体系如下图所示。

2

image.png
点击这里查看视频讲解:【赵渝强老师】阿里云MaxCompute的体系架构

一、 计算与存储层(MaxCompute Core)

MaxCompute的底层存储使用的阿里云自研的分布式文件系统Pangu,它类似于Hadoop中的HDFS。基于Pangu的分布式文件系统,在MaxCompute中数据存储具有以下三个方面的特点:

  • 基于MaxCompute Tables:表是MaxCompute的数据存储单元。MaxCompute中不同类型作业的操作对象(输入、输出)都是表。
  • 采用Compression Strategy:MaxCompute采用列压缩存储格式,通常情况下具备5倍压缩能力。
  • 数据存储可升级为AliORC:MaxCompute数据存储格式全面升级为AliORC,具备更高存储性能。

基于MaxCompute底层存储的数据,MaxCompute使用资源管理和调度系统伏羲对各种计算任务进行统一管理和调度,包括:MapReduce Job、Spark Job、SQL Job、图计算GraphX Job等等。
资源管理和调度系统伏羲,类似于Hadoop中的Yarn。它目前以管理和调度高吞吐的离线数据处理任务为主。

为了实现集群的高可用服务,在MaxCompute的体系架构中还使用了分布式协调服务女娲Nuwa。它类似于Hadoop生态圈体系中的ZooKeeper,可以使分布式集群的各个进程能够协调进行工作。

二、 逻辑层 (MaxCompute Server)

MaxCompute的逻辑层主要实现项目空间和对象的管理、命令的解析与执行逻辑、数据对象的访问控制与授权等功能。在逻辑层有Worker、Scheduler和Executor三个角色,它们各自的角色与作用如下:

  • Worker(请求处理器) 处理所有客户端的请求,包括用户空间(project)管理操作、资源(resource)管理操作、作业管理等,对于SQL语句、MapReduce任务等启动伏羲任务的作业,会提交Scheduler进一步处理。
  • Scheduler(调度器) 负责伏羲的调度,包括将任务分解为执行单元、对等待提交的执行单元进行排序、以及向伏羲询问执行单元的资源占用情况,并进行流量控制。
  • Executor(作业执行管理器) 负责启动具体的任务执行单元,向伏羲提交任务执行单元;Executor还负责监控这些任务的运行。

在了解到了逻辑层的组成部分后,这里将进一步讨论逻辑层的处理流程:当用户提交一个MaxCompute作业请求时,接入层先进行用户认证,然后将作用请求发送给逻辑层的Worker;Worker判断是否为同步请求。如果是同步请求,则本地执行并返回;如果是异步请求,Worker会先做一些检查(如:表是否存在,版本号收费最新等等),并生成任务的ID,然后把请求进一步发送给Scheduler,并返回给客户端一个确认信息。Scheduler把作业分解成各个任务执行单元,Executor主动轮询Scheduler,获取相应的任务执行单元,提交给计算层执行,并定时将自己持有的任务执行单元的状态汇报给Scheduler。

三、 接入层 (MaxCompute FrontEnd)

简单来说,接入层的主要作用就是用于接收客户端的访问请求,并通过阿里云账号服务器对客户端请求中的签名信息进行验证,从而实现对客户端的控制。接入层提供的功能包括:HTTP服务、Cache缓存、Load Balance负载均衡、用户认证和服务层面的访问控制功能。下图很好的说明了接入层的作用。

3

上图中的AccountID和AccessID有什么区别呢?一个AccountID可以对应多个AccessID和AccessKey,用户的权限数据都是和AccountID对应的。也就是说,假设某个用户被授权访问某个MaxCompute服务,而该用户有多对AccessID和AccessKey,则可以使用任何一对AccessID和AccessKey来访问MaxCompute服务。一个AccountID对应多个AccessID这个是从云计算的安全角度考虑的。比如:一个用户可以访问5个项目空间,每个项目空间可以通过不同的AccessID和AccessKey来访问。这样假设怀疑泄露第一个项目空间的AccessID和AccessKey,则可以删除该项目空间的AccessID和AccessKey,而不用修改其他项目空间的访问方式。

四、 客户端 (MaxCompute Client)

MaxCompute的客户端有四种不同的形式,分别是MaxCompute Web、MaxCompute SDK、MaxCompute CLT和MaxCompute IDE。下表说明了每种客户端的主要特征。

4

http://www.gsyq.cn/news/108202.html

相关文章:

  • 3分钟快速上手:这款思维导图神器让创意整理变得如此简单
  • 【赵渝强老师】大数据交换引擎Sqoop
  • 17、网络服务与应用:比特币汇率查询、邮件获取与文本翻译
  • 如何快速配置Mesop Select组件默认值:新手开发者的完整指南
  • 3小时精通POCO C++库:从零开始的跨平台网络编程实战
  • palera1n越狱终极指南:从零开始解锁iOS设备完整教程
  • 深入掌握Flutter网络请求:Dio与Provider架构完美融合实践
  • Z-Image: An Efficient Image Generation Foundation Model with Single-Stream Diffusion Transformer
  • Wechaty v1.20.2终极指南:5大RPA功能让聊天机器人开发效率飙升300%
  • 为什么Langchain-Chatchat成为本地知识库问答标杆?
  • 解锁PS3全部潜能:webMAN MOD终极指南,打造完美游戏娱乐中心
  • 现代化存储系统架构设计与优化策略完整指南
  • 开源vs商业大模型之争:Anything-LLM能否替代ChatGPT?
  • 3步搞定Hadoop在Kubernetes的存储配置:PVC与StorageClass实战指南
  • DSU-Sideloader:安卓双系统体验的革命性突破
  • 基于Transformer的嵌入模型如何增强Anything-LLM的搜索精度?
  • B站广告一键跳过神器:BilibiliSponsorBlock完全使用指南
  • Typst数学公式完美对齐指南:告别错位困扰
  • 终极CompreFace人脸识别部署指南:从零到生产的完整解决方案
  • CloudStream智能文件管理:告别杂乱无章的媒体库
  • Linly-Talker与Hugging Face模型生态的兼容性测试
  • C语言HTML5解析终极指南:gumbo-parser完整使用手册
  • ExoPlayer状态恢复:如何让视频播放器记住你的“续播点“?
  • FreeCAD Python自动化脚本终极指南:从零到精通
  • 秒开体验:SmartTube视频缩略图加载与缓存优化实战
  • Auto-Subtitle终极教程:3步为视频添加智能字幕
  • LangFlow拖拽式界面让AI工作流开发变得如此简单
  • 构建专属AI客服系统——基于Anything-LLM的智能问答架构设计
  • 前端剪贴板革命:告别Flash,用clipboard.js实现优雅复制
  • ComfyUI与Golang后端服务集成:高性能接口支撑