大数据之路:阿里巴巴大数据实践——离线数据开发

数据开发平台

统一计算平台
  • MaxCompute:主要服务于海量数据的存储和计算 ,提供完善的数据导入方案, 以及多种经典的分布式计算模型,提供海量数据仓库的解决方案,能够更快速地解决用户的海量数据计算问题,有效降低企业成本,并保障数据安全。

  • MaxCompute客户端:包括Web、SDK、CLT、IDE等形式完成 Project 管理、数据同步、任务调度、报表生成等常见操作。

  • MaxCompute接入层:提供HTTP服务、Cache、负载均衡,实现用户认证和服务层面的访问控制。

  • MaxCompute控制层:实现用户空间和对象的管理、命令的解析与执行逻辑、数据对象的访问控制与授权等功能。

    Worker:处理所有的RESTful 请求,包括用户空间( Project )管理操作、资源( Resource) 管理操作、作业管理等;对于 SQL DML、MR 等需要启动 MapReduce 的作业,会生成 MaxCompute Instance 提交给 Scheduler 一步处理。

    Scheduler:负责MaxCompute Instance的调度和拆解,并向计算层的计算集群询问资源占用情况以进行流控。

    Executor:负责 MaxCompute Instance 的执行,向计算层的计算集群提交真正的计算任务。

  • MaxCompute计算层:包括分布式文件系统(Pangu)、资源调度系统(Fuxi)、NameSpace服务、监控模块。

  • MaxCompute元数据:主要包括用户空间元数据、 Table Partition Schema、ACL、Job 元数据、安全体系等。

  • MaxCompute架构
    在这里插入图片描述

统一开放平台
  • D2:集成任务开发、调试及发布,生产任务调度及大数据运维,数据权限申请及管理等功能的一站式数据开发平台。

  • Dataworks:核心功能与D2一致,D2服务与阿里集团内部业务,Dataworks则为阿里云对外商业化大数据开发治理平台。

  • SQLSCAN:在任务开发中用户编写的SQL质量差、性能低、不遵守规范等问题,总结成规范,通过系统及研发流程保障。

    代码规范类规则:表命名规范、生命周期设置、表注释等。

    代码质量类规则:调度参数使用检查、分母为 提醒、 NULL 值参与计算影响结果提醒、插入字段顺序错误等。

    代码性能类规则:分区裁剪失效、扫描大表提醒、重复计算检测等。

  • DQC:主要关注数据质量, 通过配置数据质量校验规则,自动在数据处理任务过程中进行数据质量方面的监控。

    数据监控:监控数据质量并报警,其本身不对数据产出进行处理,需要报警接收人判断并决定如何处理。

    数据清洗:将不符合既定规则的数据清洗掉,以保证最终数据产出不含“脏数据”,数据清洗不会触发报警。

    监控规则:主键监控、表数据量及波动监控、重要字段的非空监控、重要枚举宇段的离散值监控、 指标值波动监控等。

任务调度系统

核心设计模型
  • 调度引擎:根据任务节点属性及依赖关系进行实例化, 生成各类参数的实值,并生成调度树。
  • 执行引擎:根据调度引擎生成的具体任务实例和配置信息,分配 CPU 内存、运行节点等资源,在任务对应的环境中运行代码。
任务状态机模型
  • 预备阶段:WAITING_DEPENDENCY → READY → WAITING_RESOURCE

  • 执行阶段:RUNNING(核心处理节点)

  • 终态阶段:SUCCESS/KILLED/SUSPENDED

  • 异常回路:FAILED ⇄ WAITING_RETRY

    任务创建
    上游依赖满足
    提交执行请求
    资源分配完成
    执行成功
    执行异常
    用户主动终止
    重试次数未耗尽
    到达重试时间
    重试次数耗尽
    终止完成
    生命周期结束
    生命周期结束
    人工干预恢复
    人工确认终止
    WAITING_DEPENDENCY
    READY
    WAITING_RESOURCE
    RUNNING
    SUCCESS
    FAILED
    KILLING
    WAITING_RETRY
    SUSPENDED
    KILLED
    核心依赖检查:
    1. 父任务状态(成功/跳过)
    2. 跨周期依赖满足
    3. 数据分区就绪
    4. 业务日期有效性
    执行引擎交互:
    - 启动计算引擎(MaxCompute/Hive/Spark)
    - 实时监控资源水位
    - 进度心跳检测(超时自动失败)
    - 日志实时采集
    智能重试策略:
    1. 指数退避时间(5s→10s→30s→1m)
    2. 资源不足时自动扩容
    3. 节点故障自动转移
    4. 环境异常自动隔离
工作流状态机模型
工作流创建
调度时间到达
子任务执行中
所有子任务成功
关键子任务失败
人工暂停
人工终止
人工恢复
人工终止
人工重跑
人工终止
终止完成
生命周期结束
生命周期结束
NOT_STARTED
RUNNING
SUCCESS
FAILED
SUSPENDED
KILLING
KILLED
启动前检查:
1. 上游工作流状态
2. 业务周期有效性
3. 全局资源水位
4. 调度配额
工作流执行控制:
- 任务并行度控制
- 优先级动态调整
- 子任务状态聚合
- 关键路径监控
- 自动容错(子任务重试)
暂停状态行为:
1. 冻结所有子任务状态
2. 保留当前执行快照
3. 释放非关键资源
4. 通知下游工作流
终止过程:
1. 发送终止信号到所有子任务
2. 清理中间数据
3. 释放所有资源
4. 更新血缘关系状态
调度引擎工作原理
  • Async Dispatcher:异步处理任务调度。
  • Sync Dispatcher:同步处理任务调度。
  • Task 事件处理器:任务事件处理器,与任务状态机交互。
  • DAG 事件处理器:工作流事件处理器,与工作流状态机交互,一个DAG 事件处理器包含若干个 Task 事件处理器。
    在这里插入图片描述
执行引擎工作原理
  • 任务管理接口:供用户系统向 Alisa 中提交、查询和操作离线任 务,并获得异步通知。
  • 系统管理接口:供系统管理员进行后台管理,包括为集群增加新 的机器、划分资源组、查看集群资源和负载、追踪任务状态等。
  • Driver:中实现了任务管理接口和系统管理接口;负责任务的调度策略、集群容灾和伸缩、任务失效备援、 负载均衡实现。
  • Task pool:已经提交的任务放入到 Task pool 中管理,包括等待资源、数据质量检测、运行中、运行成功和失败的所有任务。
  • Resource manager:组件专注于集群整体资源的管理。
  • Task container:容器负责处理 Task 的公共逻辑,如文件下载,任务级 Session 、流程级 Session 的维护等。
  • Session manager :组件实现了对 Task session 的管理。
  • Node:Node节点负责提供任务运行所需的物理资源,Node 是逻辑概念, 一台物理机器上可部署一个或者多个 Node。
    在这里插入图片描述
任务调度系统应用
  • 调度配置:任务提交时, SQL 解析引擎自动识别此任务的输入表和输出 表,输入表自动关联产出此表的任务 ,输出表亦然。
  • 定时调度:可以根据实际需要,设定任务的运行时间,共有5种时间类型:分钟、小时、日、周、月,具体可精确到秒。
  • 周期调度:可按照小时、日等时间周期运行任务,与定时调度的区别是无须指定具体的开始运行时间。
  • 手动运行:当生产环境数据修复或临时数据操作时,在开发环境中写好脚本后发布到生产环境,再通过手动触发运行。
  • 基线管理:基于充分利用计算资源,保证重点业务数据优先产出,合理安排各类优先级任务的运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89981.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的网页聊天室设计

一、需求分析1.用户管理模块注册功能实现一个注册页面。注册页面上包含了一个输入框,输入用户名和密码. 注册成功后可以跳转到登录页面.登录功能实现一个登录页面。登录页面上包含一个输入框。输入用户名和密码. 登录成功后可以跳转到主页面.2.主界面用户信息左上角…

数据结构自学Days10 -- 二叉树的常用实现

✅ 一、为什么要学习二叉树? 1. 📦 组织数据的高效方式 二叉树可以快速插入、删除、查找数据,尤其在平衡时,时间复杂度为 $O(\log n)$。 适合表示分层结构(如组织结构、文件系统、语法树)。 2. &#x…

Java注解家族--`@ResponseBody`

ResponseBody ResponseBody是 Spring 框架中的一个注解,在基于 Spring 的 Web 开发中扮演着重要角色,以下是对它的详细总结: 1.定义与基本功能 定义:ResponseBody注解用于将 Controller 方法的返回值,通过适当的 HttpM…

react-window 大数据列表和表格数据渲染组件之虚拟滚动

简介 React Window 是一个高效的 React 组件库,专为渲染大数据列表和表格数据而设计。它通过”虚拟化”技术(也称为”窗口化”或”列表虚拟化”)解决了在 React 应用中渲染大量数据时的性能问题。与传统方法不同,React Window 只…

Eltable tree形式,序号列实现左对齐,并且每下一层都跟上一层的错位距离拉大

要的是如图所示效果序号加个class-name写样式然后给eltable加indent属性就可以了,我设置的25

FOC算法中SIMULINK一些常用模块(2)-Permanent Magnet Synchronous Machine模块

一,介绍这三个模块一起介绍了,由左到右,分别是电源模块,驱动模块和电机模块。主要介绍一下电机模块二,DC Voltage SourceDC Voltage Source 模块是用于表示直流电压源的基本组件,可以提供恒流直压&#xff…

RPG62.制作敌人攻击波数二:攻击ui

1。经典创建userwidget,使用xmbtextblock,结构如下。然后设置动画与音频,上下的参数是一样的,转到图表打开BP_SurvialGameMode2.再创建一个widget,结构如下新添的动画打开XMBGameModeBase,创建构造函数AXMB…

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

Word 中为什么我的图片一拖就乱跑,怎么精确定位?

核心原因:文字环绕方式 (Text Wrapping) 问题的根源在于图片的**“文字环绕”**设置。 默认状态:“嵌入型” (In Line with Text) 当您插入一张图片时,Word默认会把它当作一个巨大的文字字符来处理。这就是为什么您拖动它时,它会像…

Linux物理地址空间入门:从硬件到内核内存的基石

目录 一、物理地址空间是什么? 二、物理地址空间的构成:不仅仅是内存 三、Linux内核如何管理物理地址空间 (1)物理内存的碎片化问题 (2)物理地址的分区管理 (3)物理地址与内核…

【2025最新版】PDFelement全能PDF编辑器

工具https://pan.quark.cn/s/a56d17fd05dd强大全能的PDF编辑神器PDFelementPro 全能PDF工具套装 PDF阅读器 PDF创建器 PDF编辑器 PDF注释器 PDF转换器 OCR识别工具 表单填写和创建 数据提取 批量处理 更多详情万兴PDF专业版特性。格式转换:PDFelement轻松…

基于单片机汽车驾驶防瞌睡防疲劳报警器自动熄火设计

(一)系统功能设计 51单片机汽车驾驶防疲劳防瞌睡报警器自动熄火15 本系统由STC89C52单片机、蜂鸣器、ADXL345重力加速度传感器、继电器控制、按键、指示灯及电源组成。 1、通过按键点亮led灯,代表车辆启动和熄火。 2、车辆启动后,…

OpenCV中的卷积高斯模糊与中值模糊

目录 一、卷积高斯模糊 (Gaussian Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 二、中值模糊 (Median Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 三、两种模糊方法对比分析…

macbookpro m1 max本儿上速搭一个elasticsearch+kibana环境

一、找个目录,新建一个: docker-compose.yml version: "3.9" services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0 # 与 Kibana 版本一致container_name: elasticsearchenvironment:- discovery.typesingle-node- xpa…

部署zabbix企业级分布式监控

一. 监控系统的功能概述监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为5种监控类型。应用性…

【重学MySQL】redolog binlog

目录 Buffer Pool是什么? redo log(Innodb独有) 为什么需要redolog? 类比的方式巧记redolog binlog(Server层独有) binlog是干啥的? 为什么有了 binlog, 还要有 redo log&…

企业信息化建设技术底座建设解决方案

1、企业数字化底座与数字化综述2、企业数字化底座与数字化总体架构3、企业数字化底座与数字化规划设计4、企业数字化底座与数字化建设运营5、企业数字化底座与数字化未来展望篇幅有限以下只展示部分截图:

Spring Cloud Alibaba 之 Nacos

Spring Cloud Alibaba 之 Nacos . Nacos官方文档: https://nacos.io/docs/latest/overview/?spm5238cd80.47ee59c.0.0.770fcd36HoVbU6 1.什么是Nacos Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、…

Car Kit重构车机开发体验,让车载应用开发驶入快车道

在智能座舱成为汽车行业“新四化”核心战场的今天,开发者们正面临这样的挑战:如何让手机应用快速适配车机场景?如何实现手机与车机无感流转?如何在保障驾驶安全的前提下提供沉浸式交互体验? HarmonyOS SDK 车服务&…

ruoyi-flowable-plus Excel 导入数据 Demo

📁 项目结构简述 ruoyi-flowable-plus 是基于 RuoYi 的扩展项目,使用: 后端:Spring Boot MyBatis Flowable前端:Vue.js 📥 Excel 导入功能 Demo 以导入用户数据为例,展示完整导入流程。 …