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

1.MaxCompute离线数据开发


(1)在逻辑层有 Worker Sc heduler Executor 三个角色:

  • Worker 处理所有的阻STful 请求,包括用户空间( Project )管
    理操作、资源( Resource 管理操作、作业管理等,对于 SQLDML
    MR 等需要启动 MapReduce 的作业,会生成 MaxCompute Instance
    (类似于 Hive 中的 Jo ,提交给 Scheduler 一步处理。

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

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

(2)MaxCompute 能保证数据的正确性,如对数据的准确性要求非常高的蚂蚁金服***业务,就运行于
Max Compute 平台之上。

2.统一开发平台



两张图对应起来看:
(1)在彼岸:多路分支进行测试和完成数据脱敏(将敏感数据模糊化)
(2)SQLSCAN:对用户的SQL进行规范,检查代码的规范性
(3)开发平台(D2)发布系统:实现和用户的IDE对接,用户可以通过IDE在D2上创建工作节点。
(4)DQC:清洗和监控数据,接收到到的数据与规则库对比,监控相关数据的可用性和对无用的数据进行清洗。

3.任务调度

  • 任务之间形成一个DAG
  • 调度系统的核心设计模型

整个调度系统共有两个核心模块:调度引擎( Phoenix Engine )和执行引擎 (Alisa)。

(1)调度引擎的作用是根据任务节点属性及依赖关系进行实例化, 生成各类参数的实值,并生成调度树

(2)执行引擎的作用是根据调度引擎生成的具体任务实例和配置信息,分配 CPU内存、运行节点等资源 在任务对应的执行环境中运行节点代码

  • 调度引擎工作原理

(1)Async Dispatcher :异步处理任务调度。
(2)Sync Dispatcher :同步处理任务调度。
(3)Task 事件处理器:任务事件处理器,与任务状态机交互。
(4)DAG 事件处理器:生成一个DAG事件处理器或者多个Task。

  • 执行引擎架构图

(1)Driver: Driver 使用 Resource manager 管理整个集群的负载。 (我们可以把 Driver 理解为 Hadoop Job Tracker 。)
(2)Task pool: Driver 也将已经提交的全部任务都放入到 Task pool 中管理所有任务。而 Task pool 本身采用 Zoo keeper现,这样它本身也是具备高可用能力的。
(3)Resource manager :这个组件专注于集群整体资源的管理。
(4)Task container :类似于 Web Server ,为 Task 提供运行的容器(似的, Web Server Action 提供运行的容器)。
(6)Session manager :这个组件实现了对 Task session 的管理。
(7)Node: Node 代表 Alisa 集群中的 个节点。节点负责提供任运行所需的物理资源。 Node 是逻辑概念, 台物理机器上可部署一个或者多个 Node (Node 类似于 Hadoop TaskTracker)

4.应用

  • 在完成数据开发的发布以后,有些表需要进行数据初始化,比如有些日增量表要补齐最近三年的历史数据,这时就需要用到补数据任务了。
  • 根据优先级将任务划分为1~9,监控任务使得否在规定时间内完成
全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务