目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:467.7k

收藏
全部开发者教程

408考研

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(217)
赞(0)

Azkaban概述

为什么需要工作流调度系统

大数据业务处理场景中,经常有这样的分析场景:

  1. A任务:将收集的数据通过一系列的规则进行清洗,然后存入Hive 表tb_a中。
  2. B任务:将Hive中已存在的表tb_b和表tb_c进行关联得到表tb_d
  3. C任务:将A任务中得到的表tb_a与B任务中得到的表tb_d进行关联得到分析的结果表tb_e
  4. D任务:最后将Hive中得到的表tb_e 通过sqoop导入到关系型数据库MySQL中供web端查询使用。

显然,以上任务C依赖于任务A与任务B的结果,任务D依赖于任务C的结果。我们一般的做法可以打开两个终端分别执行任务A与任务B,当任务A与任务B执行完成之后再执行任务C,当任务C执行完成之后再执行任务D。整个任务流程中必须保证任务A、任务B执行完成之后执行任务C,然后再执行任务D。这样某一个环节都离不开人工的参与,需要时刻盯着各任务的执行进度,非常费力。

以上业务场景就是一个大的任务,任务中分为四个子任务A、B、C、D,如果能有一个任务调度器给我们自动实现执行任务A,执行任务B,然后再执行任务C,最后执行任务D,那么就不需要人工时刻盯着任务是否执行完成,是否该开启下一个任务。Azkaban就是这样一个工作流的调度器,可以解决以上场景问题。

为什么需要工作流调度系统

  1. 一个完整的数据分析系统通常都是由大量任务单元组成:

    Shell 脚本程序,MapReduce 程序、Spark程序,Hive 脚本等

  2. 各任务单元之间存在时间先后及前后依赖关系

  3. 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行

实时效果反馈

1. 关于为什么需要工作流调度系统的描述,正确的是:

A 一个完整的数据分析系统通常都是由大量任务单元组成:Shell 脚本程序,

MapReduce 程序、Spark程序,Hive 脚本等。

B 各任务单元之间存在时间先后及前后依赖关系。

C 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。

D 以上三个选项都正确。

答案:

1=>D

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2