工作流调度--概念产生背景 | 学习笔记

简介: 快速学习 工作流调度--概念产生背景

开发者学堂课程【Azkaban 大数据调度系统课程精讲工作流调度--概念产生背景学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/721/detail/12872


工作流调度--概念产生背景


大数据生态圈的工作流调度软件,Azkaban。工作流英文叫做 workflow,名字听去有一个线的概念,工作流它的专业解释说工作流叫做业务过程中的部分或整体在计算机应用环境下的自动化,通俗解释工作流指的是为了一个工作目标,有一个业务的流程,这个流程当中可能会有多个不同的步骤步骤之间可能还存在着依赖关系。把步骤编排出来一个流程,让计算机按程序自动执行,去完成这个事,就是工作流。

企业当中有很多方面会存在着依赖关系,为了减轻人为的工作量,设置好相互的依赖关系,系统完成 a b c,汇总得出 D,就是工作流的通俗解释。

大数据分析当中,通常来说开展数据分析的一个系统往往都会有很多模块组成。首先要去开展数据分析得有数据,要有数据采集的模块,对数据做存储与处理的模块,数据进行各种分析挖掘的模块,到最后数据应用展示的模块,模块之间存在着明显的时间上的依赖关系,后面一个模块几乎需要前一个模块做完,等待它的结果才能开展,这是第一点是有一个依赖关系存在。

第二点有一个周期性的概念。举例,今天分析昨天公司的业务情况,订单销售情况,要等到明天再分析今天的。是按每天来分析,也可以按照周按照月按照年来分析,这样周期性的重复的去执行。企业当中有两种概念,一个叫依赖的关系,一个叫周期性的关系。能否布置专人去做这个事需求的产生就是工作流出现的一个背景,当你有一个工作流的调度系统之后,经过简单的配置,软件就可以利用计算机自动的帮去执行。

相关的前提是你把你的业务规则描述清楚。当下在企业当中,如果要想实现工作流调度实现的方式大概可以分为两大类,第一大类是简单的任务调度,比如需要在每天凌晨2:00把数据库重启一下,或者把服务器重启一下,这时候简单的一个调度任务可以使用 Linux 各种小工去帮我完成,比如应用上 crontab 的小软件。写一个相关的脚本编制好之后,它就可以帮你简单的调度。

但是这一个可能 crontab 虽然很简单,缺点也比较明显,就是没办法设置复杂的依赖大型的项目,比如说1个大数据分析项目,里面去的 Java 程序,等等,这样复杂的东西由的 crontab 来完成,就有些吃力。

第二种方式,针对所谓的复杂任务调度,这时候就需要去进行的设计和软件帮我完成。

当下企业中有两种选择,第一利用公司比较大,有非常多的一个开发团队,有技术有能力,就可以去自主开发一个救助平台,比如阿里它可以使用自己开发的一个叫做宙斯 zues 这么一个软件。另外可以使用一些开源的免费的调度系统,在市面上有很多,这当中最熟悉的是来自于 Apache 的一款调度软件叫做 Oozie,它有名的原因很简单,因为它的背后官方背景很大,是 Apache 软件基金会。

每个软件都有自己的优缺点,比如说今天要学习的 Azkaban,它不是 Apache 的,但是它使用起来将会非常的方便。还有的 Cascading,hamake,这些软件都是开源免费的,开源意味着你可以获得它的源码,甚至可以结合它的相关的源码,结合公司的业务特性进行相关的修改,这是实现工作的调度的方式。

因此在企业当中,当需要进行工作流调度这样需求的时候,除非你觉得市面上这些开源的不好,自己去开发一个,否则的话是由开源的软件就可以搞定了,就是工作流在当下企业。今天所学的就是大数据生态圈中,最好用最著名的一个软件叫做 Azkaban 工作流调度器。

image.png

上图列举出来了当下 Hadoop 生态体系当中4种工作流调度器的一个特点。

4款软件都可以去满足工作流的调度,但是他们在设计的理念,用户的目标,包括操作使用方面是具有非常大的一个差别。

技术选型的时候,涉及到选择模块软件的时候,需要从几个角度去考虑。第一个支持的功能,第二源码修改,第三结构清晰,第四是否方便对企业做一个定制化操作,这些因素作为参考标准。

在众多软件当中,最有名的 Oozie 来自于 Azkaban,最大的缺点是配置繁琐,适用于类似于 XML 格式的文件来描述的,你不管是调入的 Java 程序, MR 要描写大量的 XML 文件,当然它可以跟另外一块软件来进行配置。

今天所讲的软件当叫做 Azkaban,它是一个理应公司推出来的调度器,它的配置很简单,页面上简单操作一下就可以完成的调度,这个表格可以做一个参考。

相关文章
|
5天前
|
存储 前端开发 数据处理
ArkTS 常用状态管理:深入理解与实践
在HarmonyOS应用开发中,ArkTS的状态管理机制是构建响应式应用的核心。本文详细介绍了ArkTS中的状态管理,包括@State、@Prop、@Link、@Provide和@Consume等装饰器的使用及其在实际开发中的应用和最佳实践。通过这些装饰器,开发者可以实现组件内状态管理、父子组件单向和双向同步、跨组件层级状态同步等功能,从而提高应用的可维护性、可扩展性和性能。
118 1
|
3月前
|
存储 NoSQL 分布式数据库
Flink 细粒度资源管理问题之调整 slot 配置来提高资源利用效率如何解决
Flink 细粒度资源管理问题之调整 slot 配置来提高资源利用效率如何解决
|
5月前
|
DataWorks 监控 安全
DataWorks产品使用合集之如何使用节点依赖关系来配置任务之间的执行顺序
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
57 2
|
4月前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之如何通过接口单独触发业务流程里面的某些节点运行
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
缓存 图形学 UED
U3D开发技术深度解析:异步场景加载与资源管理优化策略
【7月更文第11天】在Unity3D(简称U3D)游戏开发中,优化场景加载与资源管理是提升用户体验的关键一环。通过实现高效的异步场景加载和智能的资源管理策略,我们能显著缩短玩家的等待时间,提升游戏流畅度。本文将详细介绍这两种技术的应用,并提供实用的代码示例。
282 0
|
6月前
|
小程序 数据格式
【经验分享】如何实现自定义数据源的级联选择组件?
【经验分享】如何实现自定义数据源的级联选择组件?
82 6
|
6月前
|
开发者 索引 容器
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
313 0
【鸿蒙软件开发】Stage模型开发概述应用/组件级配置
|
6月前
|
前端开发 开发者
CodeWave智能开发平台--03--目标:应用创建--06变量作用域和前后端服务逻辑
CodeWave智能开发平台--03--目标:应用创建--06变量作用域和前后端服务逻辑
|
缓存 算法 前端开发
协同文档工作机制简介
随着在线办公的兴起,传统办公套件 Office 的在线化需求也随之增加。钉钉文档作为钉钉核心办公套件之一,上线已经三年,其间持续迭代,已成为一个极其复杂的产品。对前端工程师而言,协同文档是一个较为有挑战的领域,除了传统天坑富文本编辑器外,还引入了协同编辑这一挑战,钉钉文档甚至还支持专业排版能力。 来自钉钉的前端技术专家本杰,就在第十六届D2前端技术论坛进行了分享,本次分享以钉钉文档为例,简述协同文档的工作机制。
717 0
协同文档工作机制简介
|
弹性计算 容灾 网络架构
如何创建一个多活容灾的应用底层架构
如何创建一个多活容灾的应用底层架构