Azkaban--介绍、架构、部署模式 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 Azkaban--介绍、架构、部署模式

开发者学堂课程【Azkaban 大数据调度系统课程精讲Azkaban--介绍、架构、部署模式 学习笔记,与课程紧密联系,让用户快速学习知识。

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


Azkaban--介绍、架构、部署模式


内容介绍:

一、Azkaban 介绍

二、Azkaban 功能特点

三、Azkaban 原理架构

四、Azkaban 三种部署模式

五、小结


一、Azkaban 介绍

1、从名字上看 Azkaban 的前面并没有加上阿帕奇,说明 Azkaban 并不是阿帕奇的项目,但并不妨碍它成为一款大数据生态链中非常给力的工作流调度器软件。

2、Azkaban 是由 linkedin (领英)公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。Azkaban 做工作流很简单,把它配置好之后,可以按照设定的顺序运行工作和流程,并且还可以配合调度周期性的去执行。


二、Azkaban 功能特点

1、提供功能清晰,它使用的是 job 配置文件,里面是 kv 介质堆的形式,不会太多,大概三五行就可以描绘出任务,甚至是模块之间的关系,再加上依赖,配置好之后就可以进行执行。简单易用的 Web UI 界面,可以告别黑窗口稀有命令行,用 web 用户界面维护和跟踪你的工作流。

2、提供 job 配置文件快速建立任务和任务之间的依赖关系。

3、提供模块化和可插拔的插件机制,原生支持 command、Java、 Hive、Pig、Hadoop,任何一款软件只要通过shell 执行都可以转换成 Azkaban 来执行。

4、基于 Java 开发,代码结构清晰,易于二次开发。如果当中某些模块不符合企业中实际需求,可以针对它进行二次开发,修改源码。


三、Azkaban 原理架构

image.png

Azkaban 有三个模块,AzkabanWebServerAzkabanExecutorServermysql 服务器。

1mysql 服务器:存储元数据,如项目名称、项目描述、项目权限、任务状态、SLA 规则等。内置 hr 服务器也可以。用户打开页面,通过页面代表服务器创建相关的工程以及项目信息,信息被保存在 mysql 服务器中,执行服务器再读取保存在 mysql 服务器的信息,按照时间计划执行相关的任务即可。

2AzkabanWebServer:web 服务器,对外提供 web 服务,使用户可以通过 web 页面管理。职责包括项目管理、权限授权、任务调度、监控 executor删除等不需要安装,内置服务器。

3AzkabanExecutorServer:负贵具体的工作流的提交、执行。执行服务器,进行任务调度时,进行脚本执行,提交mr 程序,提交 have 脚本。

三个共同配合构成了 Azkaban 的原理。在实际开发和使用 Azkaban 过程中很少设计到开发 web 服务器和 executor服务器,只要按照语法手册使用它即可。


四、Azkaban 三种部署模式

1solo server mode

单节点模式也称为单机模式,该模式中 webServer

executorServer 运行在同一个进程中,进程名是 AzkabanSingleServer不再使用 mysql,使用自带的 H2数据库。这种模式包含 Azkaban 的所有特性,但是在比较复杂的时候,会有性能的问题。一般用来学习和测试。初学时可以简单的使用单节点模式,配置一两个参数就可以使用了。一般初学者进行使用。

2two-server mode

该模式使用 MySQL 数据库,Web ServerExecutor Server 运行在不同的进程中。把两个服务拆开,每个都是一个进程。在这种模式下可以使用第三方的数据库进行保存共有调度的相关信息,相当于拆分,分布式。在企业中使用最多。

3multiple-executor mode

多执行服务器,相当于在第二个模式上再增加多个执行服务器,比如公司工作流调度的需求特别的繁忙,特别多,一个执行服务器满足不了,比如每小时设置100个调度项目,但是它每小时只能执行50个,这时就可以部署两个或者三个执行,该模式使用 MySQL数据库,Web Server Executor Server 运行在不同的机器中。且有多个 Executor Server使功能更加强大,该模式适用于大规模应用。功能比较强大是第三个模式。


五、小结

Azkaban

1、是由领英退出的一-款开源免费的工作流调度器软件

2、特点

1)功能强大可以调度几乎所有软件的执行( command )

2)配置简单 job 配置文件

3)提供了 web 页面使用

4java语言开发源码清晰可见,可以进行二次开发

3、架构

1web 服务器:对外提供 web 服务用户在页面上进行项目的相关管理

2executor 服务器:负责具体的工作流的调度提交。

3)数据库:用于保存工作流相关信息(比如: mysql )

4、部署模式

单节点模式: webexecutor 在同一个进程适用于测试体验

two-server:webexecutor 在不同的进程中,可以使用第三方数据库

mutil-executor-server:webexecutor 在不同的机器上,可以部署多个 executor 服务器

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
8月前
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
236 0
|
7月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2254 57
|
6月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
4551 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
9月前
|
资源调度 前端开发 算法
鸿蒙OS架构设计探秘:从分层设计到多端部署
本文深入探讨了鸿蒙OS的架构设计,从独特的“1+8+N”分层架构到模块化设计,再到智慧分发和多端部署能力。分层架构让系统更灵活,模块化设计通过Ability机制实现跨设备一致性,智慧分发优化资源调度,多端部署提升开发效率。作者结合实际代码示例,分享了开发中的实践经验,并指出生态建设是未来的关键挑战。作为国产操作系统的代表,鸿蒙的发展值得每一位开发者关注与支持。
|
7月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
603 10
|
12月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
984 81
|
12月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
419 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
9月前
|
运维 供应链 前端开发
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
518 4
|
9月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。