小程序容器助力企业在金融与物联网领域实现高效合规运营,带来的新机遇与挑战如何管理?
595
2022-11-21
Azkaban概括
大数据业务处理场景中,经常有这样的分析场景: A 任务:将收集的数据通过一系列的规则进行清洗,然后存入 Hive 表 a 中。 B 任务:将 Hive 中已存在的表 b 和表 c 进行关联得到表 d。 C 任务:将 A 任务中得到的表 a 与 B 任务中得到的表 d 进行关联得到分析的结果表 e。 D 任务:最后将 Hive 中得到的表 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 就 是这样一个工作流的调度器,可以解决以上场景问题。
Azkaban 是一个批量工作流调度器,底层是使用 java 语言开发,用于在一个工作流 内以一定的顺序运行一组任务和流程,并且提供了非常方便的 webui 界面来监控任务调度 的情况,方便我们来管理流调度任务。
Azkaban 由三个关键组件组成:
AzkabanWebServer:主要负责项目管理、用户登录权限认证、定时执行工作任务、跟踪提交任务执行 的流程、访问历史执行任务、保存执行计划的状态。AzkabanExecutorServer:主要负责工作流程的提交、执行、检索和更新当前正在执行计划的数据,处理执 行计划的日志。关系型数据库:主要是保存工作流中的原数据信息。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~