Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >1.Azkaban简介

1.Azkaban简介

作者头像
每天进步一点点
发布于 2022-12-15 08:02:13
发布于 2022-12-15 08:02:13
7470
举报
文章被收录于专栏:IfDataBigIfDataBig

一、Azkaban 介绍

1.1 背景

一个完整的大数据分析系统,必然由很多任务单元 (如数据收集、数据清洗数据存储、数据分析等) 组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流。复杂的工作流管理涉及到很多问题:

  • 如何定时调度某个任务?
  • 如何在某个任务执行完成后再去执行另一个任务?
  • 如何在任务失败时候发出预警?
  • ......

面对这些问题,工作流调度系统应运而生。Azkaban 就是其中之一。

1.2 功能

Azkaban 产生于 LinkedIn,并经过多年生产环境的检验,它具备以下功能:

  • 兼容任何版本的 Hadoop
  • 易于使用的 Web UI
  • 可以使用简单的 Web 页面进行工作流上传
  • 支持按项目进行独立管理
  • 定时任务调度
  • 模块化和可插入
  • 身份验证和授权
  • 跟踪用户操作
  • 支持失败和成功的电子邮件提醒
  • SLA 警报和自动查杀失败任务
  • 重试失败的任务

Azkaban 的设计理念是在保证功能实现的基础上兼顾易用性,其页面风格清晰明朗,下面是其 WEB UI 界面:

二、Azkaban 和 Oozie

Azkaban 和 Oozie 都是目前使用最为广泛的工作流调度程序,其主要区别如下:

功能对比
  • 两者均可以调度 Linux 命令、MapReduceSpark、Pig、JavaHive 等工作流任务;
  • 两者均可以定时执行工作流任务。
工作流定义
  • Azkaban 使用 Properties(Flow 1.0) 和 YAML(Flow 2.0) 文件定义工作流;
  • Oozie 使用 Hadoop 流程定义语言(hadoop process defination language,HPDL)来描述工作流,HPDL 是一种 XML 流程定义语言。
资源管理
  • Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作;
  • Oozie 暂无严格的权限控制。
运行模式
  • Azkaban 3.x 提供了两种运行模式:
    • solo server model(单服务模式) :元数据默认存放在内置的 H2 数据库(可以修改为 MySQL),该模式中 webServer(管理服务器) 和 executorServer(执行服务器) 运行在同一个进程中,进程名是 AzkabanSingleServer。该模式适用于小规模工作流的调度。
    • multiple-executor(分布式多服务模式) :存放元数据的数据库为 MySQL,MySQL 应采用主从模式进行备份和容错。这种模式下 webServerexecutorServer 在不同进程中运行,彼此之间互不影响,适合用于生产环境。
  • Oozie 使用 Tomcat 等 Web 容器来展示 Web 页面,默认使用 derby 存储工作流的元数据,由于 derby 过于轻量,实际使用中通常用 MySQL 代替。

三、总结

如果你的工作流不是特别复杂,推荐使用轻量级的 Azkaban,主要有以下原因:

  • 安装方面:Azkaban 3.0 之前都是提供安装包的,直接解压部署即可。Azkaban 3.0 之后的版本需要编译,这个编译是基于 gradle 的,自动化程度比较高;
  • 页面设计:所有任务的依赖关系、执行结果、执行日志都可以从界面上直观查看到;
  • 配置方面:Azkaban Flow 1.0 基于 Properties 文件来定义工作流,这个时候的限制可能会多一点。但是在 Flow 2.0 就支持了 YARM。YARM 语法更加灵活简单,著名的微服务框架 Spring Boot 就采用的 YAML 代替了繁重的 XML。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IfDataBig 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Azkaban快速入门系列(1) | Azkaban的简单介绍
例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:
不温卜火
2020/10/28
1.4K0
Azkaban快速入门系列(1) | Azkaban的简单介绍
基于Azkaban的任务定时调度实践
Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架。
洛杉矶
2019/03/04
10.2K0
Azkaban介绍
● 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 ● 各任务单元之间存在时间先后及前后依赖关系 ● 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;
编程那点事
2023/02/25
5440
Azkaban介绍
大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
1)一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等。 2)各任务单元之间存在时间先后及前后依赖关系。 3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。   例如,我们可能有这样一个需求,某个业务系统每天产生 20G 原始数据,我们每天都要对其进行处理,处理步骤如下所示:   (1)通过 Hadoop 先将原始数据同步到 HDFS 上;   (2)借助 MapReduce 计算框架对原始数据进行计算,生成的数据以分区表的形式存储到多张 Hive 表中;   (3)需要对 Hive 中多个表的数据进行 JOIN 处理,得到一个明细数据 Hive 大表;   (4)将明细数据进行复杂的统计分析,得到结果报表信息;   (5)需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。 如下图所示:
黑泽君
2019/03/15
9.6K0
大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
Azkaban-2.5.0-部署与常见案例
该文章是基于 Hadoop2.7.6_01_部署 、 Hive-1.2.1_01_安装部署 进行的
踏歌行
2020/10/15
1.5K0
Azkaban-2.5.0-部署与常见案例
大数据平台 —— 调度系统之Azkaban
其中AzkabanWebServer可以说是整个Azkaban工作流系统的主要管理者,它负责project管理、用户登录认证、定时执行工作流、跟踪工作流执行进度等一系列任务。
端碗吹水
2020/11/16
5.3K0
大数据平台 —— 调度系统之Azkaban
工作流调度器azkaban(以及各种工作流调度器比对)
文章主要讲述了如何通过配置nginx.conf来实现反向代理和负载均衡。介绍了反向代理和负载均衡的概念,以及常见的方法和优缺点。还介绍了一种基于nginx的配置方法,并给出了详细的步骤和示例。
别先生
2018/01/02
3.5K0
工作流调度器azkaban(以及各种工作流调度器比对)
客快物流大数据项目(六十八):工作流调度
工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流解决的主要问题是:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
Lansonli
2022/05/17
7360
客快物流大数据项目(六十八):工作流调度
Azkaban入门介绍与安装
本篇博客,小菌为大家带来的时候大数据组件之一的——Azkaban的介绍。
大数据梦想家
2021/01/26
1.1K1
Azkaban入门介绍与安装
Oozie如何和安装部署
1、Oozie的简单介绍: 1、Oozie是一个工作流引擎服务器,用于运行hadoop map/reduce和hive等任务工作流,同时Oozie还是一个Java web程序,运行在Java Servlet容器中,如Tomcat中。Oozie以action为基本任务单元,可以将多个action构成一个DAG图,(有向五环图Direct Acyclic Graph)的模式进行运行。Oozie工作流通过HPDL(一种通过XML自定义处理的语言)来构造Oozie的工作流。一个Oozie服务器主要包括四个服务:Oo
别先生
2018/04/16
2.3K0
Oozie如何和安装部署
大数据Azkaban(二):Azkaban简单介绍
Azkaban通过作业的依赖性解决业务调度顺序,并提供易于使用的UI界面来维护和跟踪工作流程,其主要特点如下:
Lansonli
2025/05/24
2930
大数据Azkaban(二):Azkaban简单介绍
Azkaban 任务调度系统(安装搭建)
无论是在业务开发还是在大数据开发中,脚本都是必不可少的存在,在初期我们会使用crontab来解决问题,那么当发现规模变大监控需求可视化需求的到来Crontab已经显然满足不了需求,抱着一颗解决大数据任务脚本和业务任务脚本难题的心态最终在oozie和Azkaban选择了使用Azkaban来作为公共任务调度系统,那么就随着笔者一同来学习Azkaban的基础搭建场景和基本使用吧.
喵了个咪233
2022/03/24
6420
Azkaban教程[通俗易懂]
Azkaban是在LinkedIn上创建的用于运行Hadoop作业的批处理工作流作业调度程序。Azkaban通过工作依赖性解决订购问题,并提供易于使用的Web用户界面来维护和跟踪您的工作流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系
全栈程序员站长
2022/11/01
1.4K0
Azkaban教程[通俗易懂]
2.Azkaban 3.x 编译及部署
Azkaban 在 3.0 版本之后就不提供对应的安装包,需要自己下载源码进行编译。
每天进步一点点
2022/12/15
5350
2.Azkaban 3.x 编译及部署
进击大数据系列(十一)Hadoop 任务调度框架 Oozie
Oozie 是一个用来管理 Hadoop 生态圈 job 的工作流调度系统。由 Cloudera公司贡献给 Apache。
民工哥
2023/08/22
1.1K0
进击大数据系列(十一)Hadoop 任务调度框架 Oozie
任务调度:Azkaban使用篇
登录 https://localhost:8443 注意是https,采用的是jetty ssl链接。输入账号密码azkaban/azkanban(如果你之前没有更改的话)
Freedom123
2024/03/29
4770
数据调度组件:基于Azkaban协调时序任务执行
在数据服务的业务场景中,很常见的业务流程就是日志文件经过大数据分析,再向业务输出结果数据;在该过程中会有很多任务需要执行,并且很难精准把握任务执行的结束时间,但是又希望整个任务链尽快结束释放资源。
知了一笑
2021/04/16
4220
数据调度组件:基于Azkaban协调时序任务执行
CentOS 7下安装azkaban详细步骤
azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab.
用户5766185
2019/07/08
2K0
使用Azkaban进行定时任务调度
在做服务器开发时,我们经常会涉及到定时任务的处理。在linux环境,常用而简便的方式是使用crontab来定时启动执行我们的任务。但是这种方式也存在问题,如:不能方便的查看到任务的成功失败状态,任务的执行时长等信息。下面我介绍一种使用Azkaban来进行定时任务调度的方案。
用户1135648
2019/02/21
6.9K0
使用Azkaban进行定时任务调度
Azkaban-3.x two-server 模式搭建
web-server和executor-server是两个单独的进程,但都运行在同一个机器上,调度任务只能分配到该机器上执行,元数据存储在MySQL中,MySQL可以在其他机器上。
CoderJed
2019/08/24
1.5K0
相关推荐
Azkaban快速入门系列(1) | Azkaban的简单介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档