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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 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 服务器

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
78 6
|
12天前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
45 2
|
13天前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
42 2
|
16天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
48 2
|
2月前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
91 0
|
1月前
|
JSON 监控 安全
探索微服务架构中的API网关模式
【9月更文挑战第22天】在微服务架构的海洋中,API网关如同一位智慧的守门人,不仅管理着服务的进出,还维护着整个系统的秩序。本文将带你一探究竟,看看这位守门人是如何工作的,以及它为何成为现代云原生应用不可或缺的一部分。从流量控制到安全防护,再到服务聚合,我们将一起解锁API网关的秘密。
|
1月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
116 3
|
1月前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
62 2
|
2月前
|
分布式计算 负载均衡 API
微服务架构设计原则与模式
【8月更文第29天】随着云计算和分布式计算的发展,微服务架构已成为构建大型复杂应用的一种流行方式。这种架构模式将单个应用程序分解成一组小型、独立的服务,每个服务运行在其自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。本文将探讨微服务架构的基本设计原则、常用模式以及如何有效地划分服务边界。
231 3
|
2月前
|
C# 微服务 Windows
模块化革命:揭秘WPF与微服务架构的完美融合——从单一职责原则到事件聚合器模式,构建高度解耦与可扩展的应用程序
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中借鉴微服务架构思想,实现模块化设计。通过将WPF应用分解为独立的功能模块,并利用事件聚合器实现模块间解耦通信,可以有效提升开发效率和系统可维护性。文中还提供了具体示例代码,展示了如何使用事件聚合器进行模块间通信,以及如何利用依赖注入进一步提高模块解耦程度。此方法不仅有助于简化复杂度,还能使应用更加灵活易扩展。
82 0