首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mongodb客户端操作语法笔记
##登录连接: 进入客户端方法 D:\Program Files\MongoDB\Server\5.0\bin>mongo.exe
oktokeep
2024/10/09
1630
mongodb客户端操作语法笔记
MongoDB :第七章:总结一下学习MongoDB的心得
> use runoob switched to db runoob > db runoob > 
Java廖志伟
2022/09/28
6430
手把手教你 MongoDB 的安装与详细使用(一)
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
程序员鹏磊
2018/01/26
2.7K0
手把手教你 MongoDB 的安装与详细使用(一)
mongodb基础语句
数据库 新增 `use DATABASE_NAME` 如果存在切换至指定数据库,不存在创建 `show dbs` 展示所有数据库,注意:新建的数据库没有数据展出不出来 删除 `db.dropD
OPice
2019/10/24
5180
MongoDB :第七章:总结一下学习MongoDB的心得
创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。
马克社区
2023/08/24
2900
mongodb-探索阶段[通俗易懂]
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
全栈程序员站长
2022/07/19
8270
mongodb-探索阶段[通俗易懂]
开心档-软件开发入门之MongoDB 聚合
MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。
iOS程序应用
2023/02/06
2K0
手把手教你 MongoDB 的安装与详细使用(二)
上一篇文章练习了,MongoDB 的以下操作
程序员鹏磊
2018/02/02
3.8K0
手把手教你 MongoDB 的安装与详细使用(二)
MongoDB 中聚合统计计算 – $SUM表达式
我们一般通过表达式$sum来计算总和。因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种:1,统计符合条件的所有文档的某个字段的总和;2,统计每个文档的数组字段里面的各个数据值的和。这两种情况都可以通过$sum表达式来完成。以上两种情况的聚合统计,分别对应与聚合框架中的 $group 操作步骤和 $project 操作步骤。
星哥玩云
2022/08/18
1.9K0
MongoDB系列之MongoDB常用命令
MongoDB连接,使用“username:password@hostname/dbname’”的形式进行连接。 连接本地数据库服务器,端口是默认的。
SmileNicky
2022/07/12
3.1K0
MongoDB快速入门,掌握这些刚刚好!(第二篇)
用户10002156
2023/12/20
3360
MongoDB入门(四)
将记录按条件分组以后,然后再进行一系列操作,例如,求最大值、最小值、平均值,求和等操作。聚合操作还能够对记录进行复杂的操作,主要用于数理统计和数据挖掘。
传说之下的花儿
2023/11/26
1.1K0
MongoDB入门(四)
最全 MongoDB 基础教程
MongoDB 创建数据库 - 格式:use DATABASE_NAME - use ruochen - db创建数据库需要插入一条数据才会在列表中显示 - db.ruochen.insert({'name': '若尘'}) - show dbs 删除数据库 格式:db.dropDatabase() - use ruochen - db.dropDatabase() - show dbs 创建集合 - 格式:db.createCollection(name, options)
ruochen
2021/02/17
12.1K0
最全 MongoDB 基础教程
MongoDB 入门极简教程
安装 MongoDB Windowns、Ubuntu17.10 下安装 MongoDB教程在此MongoDB 帮助 要想获取命令列表,在 mongodb 客户端中输入 db.help():1> db.help() MongoDB 统计信息 要想获取 MongoDB 服务器的统计信息,在 mongodb 客户端中输入 db.stat(): 1 > db.stats() 创建数据库 use 命令 MongoDB 用 use + 数据库名称 的方式来创建数据库。 use 会创建一个新的数据库,如果该数据库存
KangVcar
2018/07/06
4.1K0
MongoDB快速入门,掌握这些刚刚好!
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。
macrozheng
2020/05/19
3.8K0
MongoDB 常用命令教程
默认情况下,MongoDB的启动端口为27017。比MongoDB启动端口大1000的端口为MongoDB的web用户界面,你可以在浏览器中输入 http://localhost:28017 来访问MongoDB的web用户界面。
为为为什么
2023/02/21
1K0
mongodb的用户登录认证和基本使用
连接: killall mongo mongo --host 127.0.0.1:27017 创建超级管理员 >use admin >db.createUser({ user:"wjb", pwd:"wjb123456", roles:[ { role:"userAdminAnyDatabase", db:"admin" } ] }) Successfully added user: {         "user" : "user",         "roles" : [                 {                         "role" : "dbOwner",                         "db" : "mydb"                 }         ] } > 如果 MongoDB 开启了权限模式,并且某一个数据库没有任何用户时,在不验证权限的情况下,可以创建一个用户,当继续创建第二个用户时,会返回错误,若想继续创建用户则必须登录,并且要先进入admin数据库。 PS:roles角色官网中分为built-in roles and user-defined roles Built-In Roles(内置角色): 1. 数据库用户角色:read、readWrite; 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin; 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 备份恢复角色:backup、restore; 5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超级用户角色:root   // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 内部角色:__system 创建用户时可以在其数据库中创建,这样不用每次都进入admin数据库登录后再切换。如在数据库"mydb"创建用户"newwjb"。 use admin   db.auth("admin","admin")   创建新数据库 use test#创建新数据库   #查看所有数据库,没有看到test,插入一条数据才能看到 db.createUser(     {       user: "testwjb",       pwd: "testwjb",       roles: [ { role: "dbOwner", db: "test" } ]     }   )   db.auth("testwjb","testwjb")   db.wjbdb.insert({"name":"iamtest"}) show dbs#此时已看到test数据库 删除数据库 use test#切换当前数据库 db.dropDatabase() robomongo客户端软件连接: 地址:https://robomongo.org/download  user: "testwjb",pwd: "testwjb"连接即可 
拓荒者
2019/07/04
3.9K0
MongoDB 的安装和基本操作
示例:db.User.update({name:"lucy"}, {$set:{age:100, sex:0}})
用户7630333
2023/12/07
6710
MongoDB 的安装和基本操作
分布式文件存储的数据库MongoDB教程整理
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB 官网地址:https://www.mongodb.com/ MongoDB 官方英文文档:https://docs.mongodb.com/manual/ MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community
SmileNicky
2019/01/17
2.6K0
MongoDB学习|知识点整理
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
技术从心
2019/08/06
2.1K0
相关推荐
mongodb客户端操作语法笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档