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

数据开发平台

统一计算平台

  • 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架构

    image-20250720144935336

统一开放平台

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

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

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

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

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

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

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

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

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

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

任务调度系统

核心设计模型

  • 调度引擎:根据任务节点属性及依赖关系进行实例化, 生成各类参数的实值,并生成调度树。
  • 执行引擎:根据调度引擎生成的具体任务实例和配置信息,分配 CPU 内存、运行节点等资源,在任务对应的环境中运行代码。

任务状态机模型

  • 预备阶段:WAITING_DEPENDENCY → READY → WAITING_RESOURCE
  • 执行阶段:RUNNING(核心处理节点)
  • 终态阶段:SUCCESS/KILLED/SUSPENDED
  • 异常回路:FAILED ⇄ WAITING_RETRY

调度引擎工作原理

  • 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种时间类型:分钟、小时、日、周、月,具体可精确到秒。
  • 周期调度:可按照小时、日等时间周期运行任务,与定时调度的区别是无须指定具体的开始运行时间。
  • 手动运行:当生产环境数据修复或临时数据操作时,在开发环境中写好脚本后发布到生产环境,再通过手动触发运行。
  • 基线管理:基于充分利用计算资源,保证重点业务数据优先产出,合理安排各类优先级任务的运行。
#大数据##大数据之路#
全部评论

相关推荐

已经实习了十几天,闲来无事还是来写个随笔吧。刚拿到实习offer的时候真的特别激动,当时还在宿舍打英雄联盟,一个电话打过来,我还以为是什么骚扰电话,但是电话另一头传来了消息,对我说同学你通过了饿了么的面试,请问你要来这边实习吗,真的挺激动,可能大厂实习好几段的同学不知道我在激动个什么,不就是个实习offer吗,且听我娓娓道来。虽说饿了么不是什么顶级大厂,但是对于我来说,已经算是很不错的了。在这个时间点,我自己手上只有一个合肥的小国企的offer,都打算当天晚上把offer接了。在接收到结果之前的一段时间内都挺煎熬的,从一开始的抱有希望,到后面慢慢接受,一直在搜索浏览阿里hr挂人的帖子,正常看到大家一周内都会有结果,特别是饿了么速度快的hr面完第二天就能收到oc,我面试完之后,都在回忆我哪里做得不好,哪句话可能会给我宣判死刑。在这种自我忏悔和抱有希望夹杂的感情中慢慢度过一天又一天,周四面完,周五焦急等待一天没有消息,希望直接减半,期间我都不知道到看了多少次招聘主页的流程状态有没有变化,每次点开前都忐忑一下。在下周一晚上八九点多的时候,终于看到,状态从面试中到等待面试结果了,从网上看到说,很多是hr面完直接流程结束,到等待面试结果是面试过了但是还在横向对比,也就是大家所谓的泡池子,一说到泡池子我就想到了那下头的华子,后面再说它。我以为状态到这,形势好转,心情好了不少,还开心心的跟女朋友说,看明天能不能收到电话了,但是一天天过去,还是没收到任何消息,期间每一个电话都能让我心跳扑通好几下,最搞人心态的是有一天的高德还是哪里的广告电话,也是八位数来自杭州,我服了。就这样一周过去了,我的大厂梦好像在胜利前的一夜即将看到黎明曙光的时候又逐渐黑了下来。但好在手上至少也还有一个offer,可以直接转正的那种,了解到也不加班之类的,心想也还可以,就直接开摆了。唉,我又幻想了,幻想着去大厂实习,把加入阿里大家庭的截图给我的兄弟们看,幻想着在大厂里每天能学到很多知识,拿着好几百一天的实习薪资美美敲代码,但是这个幻想在这一周过去的时候都破灭了。确实呀,我也能逐渐接受,现在学历为王的时代,我的双非本科真的好像是案底一样,每当失败的时候我都会这样安慰自己,我不是实力不够,只是学历不行。是呀,看到大家都是211本985硕起步的,我自己毫无竞争力可言,能有一个国企offer都已经很不错了。经历了很多次失败,逐渐也能够接受了,一周过去,这期间也面试了很多家,打算回老家休息几天,其中经过我大学同学家顺便去玩了一天,聊了很多,对于双非本科也逐渐认命了,没办法双非就是坐过牢。我总是这样安慰自己。我大概是从五月份才开始投递的,原因是在四五月份还在老师那边干活,也没时间准备和投递,时间比较晚了,投递过很多家但是都基本是简历直接没过,或者一面就直接挂了。当时投华子的时候,其实挺想去华子的,面试真的体验很不错面试官都很温柔,三月底就投递了,那热情的hr让我以为去华子挺有希望,但是最终泡池子被hr的我们通过面试之后是按学历一层层筛的这样一句话拒之门外,真的不知道这是看部门hc还有地方吗,明明我有学历比我低的同学也能去华子,后来我把怒火归结于我的hr,我以为她不一样,跟网上看到的华子hr不一样,但真还是一样(怎么跟谈恋爱似的)。还有讯飞的面试,是的讯飞的我也挂了,主要是我上学期投递的,这学期开学联系我面试期间只有两天的复习时间,经历了一个假期我完全记不太多了,当时就是怪自己太菜,这个确实是,而且给我的打击不小,觉得怎么别人口中的随便去怎么到我这这么困难,想着这么简单的大厂(毕竟也就一面二三十分钟样子)都过不了,那别的更没机会了,经历了几天的昏昏沉沉后面就跟老师来到了苏州干活。也还有面试感觉还行但是秒挂,还有评测完杳无音讯的,这种找工作的经历在我暑期的时候还好都经历了一遍,要是我直接秋招可能心态直接爆炸吧,秋招难度肯定比实习难很多了。要说好事还真是都一起来,后面还通过了一家银行的科技岗暑期,但还是想去大厂实习,想多体验体验。最终的结果也还行吧,虽然这个时间点比较晚了,但好过颗粒无收,无论能不能转正,我都想着在这多学点东西,多体验体验,没有去过大厂实习也没在上海生活过,这样起码有能说得出口的实习经历了。而且不知道为什么,觉得大家都好厉害,offershow上看到很多高薪但是好像下面评论都是说大白菜低了什么的,比如饿了么实习转正压价都是24x16,这一算下来有38w呀,到手能有小30w,我都觉得这已经算是相当不错了,但是怎么觉得大家都对40w以下的offer不正眼看呢?目前实习了两周,整体来说还算可以,没有很push,前几天就是配置环境还有看文档,后面就开始改bug和写需求了,我们组氛围还不错,这边上班没有打卡,早上十点前到,晚上大概八点左右走吧,我一般是早上九点四十多到,坐在工位上吃饭,差不多到吃到十点,一天大概就是9:40-12:00,然后中午在睡到一点多,有沙发或者折叠椅,然后随便吃点吧,下午是13:30-18:00,一小时吃个饭加散步,跟同组的人瞎溜达哈哈,然后19:00-20:00左右走了,周五是早下班下午六点就可以溜了。一天四百+中午25餐补(打工资卡)+晚上25餐补(券不用就没了),还有2k房补,感觉实习待遇也是相当不错了,不过上海的东西真贵,房子3k房租加上水电费3.3k吧,晚上也得三十多的饭。不知道各位友友们实习的时候都在干嘛?menter就在背后,也不敢打开leetcode和面试题网站呀
双非能在秋招上岸吗?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务