开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第五阶段):网站流量日志分析-工作流调度-概述含义】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/697/detail/12249
网站流量日志分析-工作流调度-概述含义
内容介绍:
一. 工作流调度
二. 工作流调度实现方式
三. Azkaban 介绍
一. 工作流调度
工作流概念:
工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。
在日常工作生活中,我们需要实现某个业务目标,这个目标可以通过不同的步骤完成。
这些步骤中有些是存在着前后依赖关系,有些可以同时执行,但是最终想要完成此目标,需要把前面这些步骤按部就班的全部完成,才能达到这个目标。
在这样的背景下,工作流调度的目的就是实现利用计算机系统,自动地按照我们设定的规则完成某件事。
做某件事如果有三个步骤,使其按照预定规则自动传递文档,信息或者业务,这背后包含的就是工作流的相关知识。
以大数据项目来说,离线或者实时的分析系统通常都是由数据的采集、数据的预处理、数据的分析、数据展示等模块组成。模块的内部和外部,都存在时间上先后依赖关系并且周期性重复执行。
为了降低我们的工作量,需要工作流调度系统自动为我们完成一些业务目标,工作流调度就在这种情况下产生。
实现工作流调度,背后两层关系很重要,一是依赖,二是周期性。依赖意味着做某件事时必须先完成某个步骤再进行下一步,不能同时执行;周期性是指能够实现重复执行。
二.工作流调度实现方式
目前企业中工作流调度有两种实现方式:
1.简单的任务调度
如果我们的需求简单,可以选择使用 Linux 的 crontab 来定义调度,crontab 可控制分钟级别,需要配合相关的 shell 脚本执行。
缺点:无法设置依赖复杂的的任务调度。
2.复杂的任务调度
企业有两种选择:
第一.比较强大的公司可自主开发工作流调系统。
第二.没有很多精力和成本的公司可选择使用开源免费的调度系统。比如: azkaban, Apache Ooize, Zeus 等。
其中知名度最高的是 Apache Ooize,但其最大弊端是配置工作流的过程需要编写大量的 XML 配置,代码复杂度较高,且不易于二次开发。
此外还有一个来自于阿里巴巴开发的,非常轻量级,很方便的工作流调度系统azkaban,也可完成调度。
三.Azkaban 介绍
Azkaban 是由领英公司推出的一个批量工作流任务调动器。最大优点是 Azkaban 提供一个易于使用的 web 用户界面,可以在页面上直接进行操作;
第二是其配置极其简单,原因是其使用 job 配置,核心工作直接在 job 中编写即可。
以上就是工作流调度概述和含义。
如果没有复杂的需求,想要自己每天手动执行且确保安全,可自己手动定闹钟来执行;更方便的是可编写脚本,测试之后再配合这些工作流调度软件,不管是简单还是复杂的事务,都可以帮我们极大的减少工作量,达到周期性重复性的工作流调度的实现。