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

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

开发者学堂课程【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,它是一个理应公司推出来的调度器,它的配置很简单,页面上简单操作一下就可以完成的调度,这个表格可以做一个参考。

相关文章
|
JSON 网络协议 Java
图文详解压力测试工具JMeter的安装与使用
压力测试是目前大型网站系统的设计和开发中不可或缺的环节,通常会和容量预估等工作结合在一起,穿插在系统开发的不同方案。压力测试可以帮助我们及时发现系统的性能短板和瓶颈问题,在这个基础在上再进行针对性的性能优化,也可以帮助我们预估系统的承载能力,使我们能根据其做出一些应对措施。
1835 0
图文详解压力测试工具JMeter的安装与使用
|
SQL 安全 Java
防范sql注入式攻击(Java字符串校验,高可用性)
防范sql注入式攻击(Java字符串校验,高可用性)
3894 1
|
数据挖掘 BI 开发工具
|
8月前
|
人工智能 自然语言处理 监控
LongPort MCP:证券业首个券商MCP,AI赋能智能投资新时代,散户也能玩转机构级交易
LongPort MCP是长桥集团推出的证券行业首个券商模型上下文协议,通过标准化接口实现AI与金融服务的无缝对接,支持自然语言交互的智能投资服务。
1214 8
LongPort MCP:证券业首个券商MCP,AI赋能智能投资新时代,散户也能玩转机构级交易
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
1357 95
|
前端开发 easyexcel Java
Java+EasyExcel实现文件导入导出,导入导出如此简单
项目中需要Excel文件的导入与导出Excel并下载,例如,导入员工信息,导出员工信息,手动输入比较繁琐,所以本篇博文教大家如何在Java中导入Excel文件与导出Excel文件
15719 3
Java+EasyExcel实现文件导入导出,导入导出如此简单
|
8月前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
ly~
|
消息中间件 存储 数据库连接
RocketMQ 消息的重试机制是怎样的?
RocketMQ的消息重试机制确保消息消费失败时能自动重试,直至成功。默认重试16次,时间间隔逐次翻倍,从10秒至数分钟不等。重试在同组内不同消费者间进行,由异常抛出或特定状态返回触发。支持自定义重试次数与时间间隔,建议合理配置避免无限重试,保障系统稳定性和性能。
ly~
3933 2
|
Nacos
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
573 0
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
|
存储 算法 数据处理
数据结构与云计算:实现高效的数据存储与处理
本文探讨了数据结构和云计算在现代信息技术中的核心作用。数据结构,包括线性与非线性结构,影响着程序的效率,而在云计算环境中,这些结构需要适应分布式、并行和高可用性的需求。云计算提供弹性、可扩展的计算资源,分为IaaS、PaaS和SaaS三层服务模式。数据存储与处理在云计算中面临优化,如分布式数据存储利用哈希表实现数据分布,分布式数据处理采用映射减少算法提高效率,同时数据压缩和加密确保存储节省与安全性。未来,云计算将继续发展,面临扩展性、可靠性和安全性的挑战,而数据结构的优化将是提升系统性能的关键。
1290 5