Azkaban页面介绍 1

创建project 2

上传项目 3

工作流视图 4

项目权限  5

执行流程  6

故障选项  7

任务执行选项 8

定时任务 9

书写azkabna的作业  10

 10.1创建工程 11

10.2创建job 12

10.3四类job类型的文件都可以添加的参数 13

10.4创建工作流flow 14

10.5创建子工作流subflow及其作用 15

10.6邮件提醒设置 16

页面介绍

https://localhost:8443 注意是https,采用的是jetty ssl链接。输入账号密码azkaban/azkanban(如果你之前没有更改的话) 登录                  

首页有四个菜单

projects:最重要的部分,创建一个工程,所有flows将在工程中运行。 
scheduling:显示定时任务 
executing:显示当前运行的任务 
history:显示历史运行任务

如果刚刚开始,项目页面可能为空。但是,您可以通过单击所有项目来查看所有现有项目。

单击创建项目将弹出一个对话框。输入项目的唯一项目名称和说明,项目名称必须以英文字母开头,只能包含数字、英文字母、下划线、横线 。以后可以更改说明,但项目名称不能。如果您没有看到此按钮,除了具有适当权限的用户之外,创建新项目的可能性已被锁

创建项目后,将显示一个空的项目页面。您将自动获得该项目的ADMIN状态。通过单击权限按钮添加和删​​除权限。

如果您具有适当的权限(如果您创建项目,则应该该权限),您可以从该页面删除项目,更新描述,上传文件和查看项目日志

上传项目

点击上传按钮。您将看到以下对话框。

选择要上传的工作流文件的存档文件。目前,    Azkaban只支持xxx.zip文件。zip应包含xxx.job运行作业所需的文件和任何文件。作业名称在项目中必须是唯一的。

Azkaban将验证zip的内容,以确保满足依赖关系,并且没有检测到循环依赖。如果发现任何无效的工作流,上传将失败。

上传覆盖项目中的所有文件。在上传新的zip文件后,对作业所做的任何更改都将被清除。

 

点击上面的后面的任务图表按钮

   工作流视图

通过点击流程链接,您可以转到流程视图页面。从这里,您将看到流程的图形表示。左侧面板包含流程中的作业列表。

右键单击右侧面板中的作业或图形中的节点将允许您打开单个作业。您还可以从此页面计划和执行流程。

单击“执行”选项卡将显示此流程的所有执行记录。

                                                         项目权限

创建项目时,创建者将自动在项目上给予ADMIN状态。这允许创建者查看,上传,更改作业,运行流程,删除并向项目添加用户权限。管理员可以删除其他管理员,但不能删除自己。除非管理员被管理角色的用户删除,否则这会阻止项目成为管理员。

添加用户权限为这些用户赋予项目所指定的权限。通过取消选中所有权限来删除用户权限。

组权限允许特定组中的每个人指定的权限。通过取消选中所有组权限来删除组权限。

如果代理用户已打开,则代理用户允许项目工作流作为这些用户运行。这有助于锁定哪些无头帐户作业可以代理。添加后,点击“删除”按钮即可将其删除。

每个用户都通过UserManager进行验证,以防止添加无效用户。组和代理用户也将检查以确保它们是有效的,并查看是否允许管理员将其添加到项目中。

可以为用户和组设置以下权限:

Permissions

Values

ADMIN

最高权限,包括给其他用户添加、修改权限

READ

只能访问每一个project的内容和日志信息

WRITE

可以在已创建的project上传、修改任务的属性,可以删除任何的project

EXECUTE

允许用户执行任何的工作流

SCHEDULE

允许用户添加、删除任何工作流的调度信息

CREATEPROJECTS

如果项目创建被锁定,则允许用户创建新项目

执行流程视图

从流程视图面板中,您可以右键单击图形并禁用或启用作业。在执行期间将禁用残留作业,就像它们的依赖关系一样。残障作业将显示半透明。

通知选项 通知选项允许用户更改流程的成功或失败通知行为。

通知失败

第一个故障 - 检测到第一个故障后发送故障电子邮件。

流程完成 - 如果流程的作业失败,它将在流程中的所有作业完成后发送故障电子邮件。

电子邮件覆盖

Azkaban将使用流中最终作业中设置的默认通知电子邮件。如果被覆盖,用户可以更改发送失败或成功发送电子邮件的电子邮件地址。列表可以用逗号,空格或分号分隔。

故障选项

当流程中的作业失败时,您可以控制其余的流程如何成功。

。完成当前运行将完成当前运行的作业,但不会启动新作业。FAILED FINISHING一旦完成,流程将被置于状态并设置为失败。

。取消全部将立即终止所有正在运行的作业,并将执行流程的状态设置为FAILED。

。完成所有可能会在流程中继续执行作业,只要其依赖性得到满足即可。FAILED FINISHING一旦完成,流程将被置于状态并设置为失败。

并发选项

如果流同时执行时调用流执行,则可以设置多个选项。

如果“ 执行”选项已经运行,则不会运行该流。

运行并发选项将运行流程,无论它是否运行。执行不同的工作目录。

管道以新执行方式不会超过并发执行的方式运行流程。

级别1:执行作业A的块,直到上一个流程的作业A完成。

级别2:执行作业A的块,直到上一个流程的作业A的孩子已经完成。如果您需要在已执行流程后面运行流程,这将非常有用。

工作流选项

允许用户覆盖工作流参数。工作流参数覆盖作业的全局属性,而不是作业本身的属性

执行

后执行流程,你将提交执行流程页面。或者,您可以从“ 流程视图”页面的“执行”选项卡,“历史记录”页面或“执行”页面访问这些流程。

此页面类似于“流程视图”页面,但显示运行作业的状态。

 

只要执行没有完成,该页面将自动更新。

                                               任务执行选项

您可以在执行流程上执行的一些选项包括:

取消 - 杀死所有正在运行的作业,并立即失败。流动状态将被杀死。

暂停 - 阻止新作业运行。目前运行的作业照常进行。

恢复 - 恢复暂停执行。

重试失败 - 仅当流程处于FAILED FINISHING状态时可用。当流程仍然活动时,重试将重新启动所有FAILED作业。“尝试”将显示在“作业列表”页面中。

准备执行 - 仅在完成的流程中可用,无论成功或失败。这将自动禁用成功完成的作业。

执行页面

单击标题中的“执行”选项卡将显示“执行”页面。此页面将显示当前运行的执行以及最近完成的流程。

历史页

当前正在执行的流程以及完成的执行程序将显示在“历史记录”页面中。提供搜索选项来查找您要查找的执行。或者,您可以在“ 流视图执行”选项卡上查看先前执行的流程。

下面是定时任务列

                                               定时任务

计划流程

从用于执行流程的同一个面板中,流程可以通过点击* Schedule *按钮进行排定。

 

将为预定流保留任何流选项集。例如,如果作业被禁用,则预定流程的作业也将被禁用。

使用Azkaban 3.3中的新的灵活调度功能,用户可以在Quartz语法之后定义一个cron作业。与Quartz或cron不同的一个重要变化是Azkaban最多以最小的粒度运作。因此,UI中的第二个字段被标记为静态“0”。该灵活的时间表百科解释了细节如何使用。

安排后,它应该出现在计划页面上,您可以在其中删除计划作业或设置SLA选项。

  SLA

要添加SLA通知或抢占,请单击SLA按钮。从这里您可以设置SLA警报电子邮件。规则可以添加并应用于单个作业或流程本身。如果超过持续时间阈值,则可以设置警报电子邮件,否则流程可能会被自动杀死。

工作页面 工作组成一个流程的各个任务。要访问作业页面,您可以右键单击流程视图,执行流程视图或项目页面中的作业。

任务编辑

单击作业编辑将允许您编辑除特定保留参数(例如type和)以外的所有作业属性dependencies。只有当作业尚未开始运行时,对参数的更改才会影响执行流程。这些覆盖作业属性将被下一个项目上传覆盖。

 

书写azkabna的作业

10.1  创建工程:

创建之前我们先了解下之间的关系,一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。

10.2 创建job

首先,需要创建以.job为扩展名的文件,一个文件即代表一个任务。

所有的job都需要一个知道他们如何去执行的type。一般的,有这样四种job类型:Java、command、javaprocess和pig。
本文以type=command为例

其次在这个文件中添加这个任务所需的参数与参数值,
必须的参数有type与command

type=command

command=echo 'jobs start'

10.3 四类job类型的文件都可以添加的参数有
retries --> 任务失败时自动重启的次数
retry.backoff --> 每一次任务尝试重启时之间等待的毫秒数
working.dir --> 可以重新指定任务执行的工作目录,默认为目前正在运行的任务的工作目录
failure.emails --> 任务失败时的邮件提醒设置,以逗号分隔多个邮箱
success.emails --> 任务成功时的邮件提醒设置,以逗号分隔多个邮箱
notify.emails --> 任务无论失败还是成功都邮件提醒设置,以逗号分隔多个邮箱
dependencies--> 定义该文件依赖的文件,值为被依赖文件的文件名,多个目标以逗号分隔,不加扩展名

保存为hadoop.job文件即创建好了一个job

Azkaban每个project中只能上传一个.zip文件

10.4创建工作流flow

定义好所有的参数后即为定义好了一个job,如果添加了dependencies参数即形成了工作流flow
以开头的任务流为例:

#hadoop.job

type=command

command=echo "jobs hadoop"

#hive.job

type=command

command=echo "This hive job"

dependencies=hadoop

#spark.job

type=command

command=echo "This spark job"

dependencies=hadoop

#hue.job

type=command

command=echo "This hue job"

dependencies=hadoop,hive

#sqoop.job

type=command

command=echo "This sqoop job"

dependencies=spark

保存好5个文件后,将5文件打包成zip,然后在界面中进行上传,就会将这几个job上传到了系统中,最终呈现

                                              

从而一个工作流flow建好。

注意,想多个工作流flow并到一张图中,必须多个工作流flow有一个公共的结束job文件

10.5创建子工作流subflow及其作用

Azkaban可以给每一个flow设定定时调度,这样就可以等到特定时间运行,然而,这样依旧不能满足一些需求
例如:
一个整个平台的任务调度中,大部分的job任务是根据依赖依次进行,但是有某些个job则依然需要自己的运行设定时间,即上一个job完成后需要等待,不能立即执行下一个job,但是Azkaban给job任务单独设定时后,会覆盖整个任务流flow的设置,所以此时需要引进子任务流subflow
子任务流的创建需要一个job文件,其参数形式为

type= xxx

flow.name= xxx

dependencies= xxx

注意
子流文件的参数设置需要遵循:

  1. flow.name为设定的子流subflow的结束job文件的文件名
  2. 子流内部的起始文件不存在依赖 ,其依赖关系在type=flow这个文件中设定
  3. 子流后面的文件的依赖则为type=flow这个job文件的文件名

所以上面这个例子中
添加一个文件:

#subflow.job

type=flow

flow.name=C

dependencies=start

相应修改文件:

#A.job

type=command

command=echo "This A job"

#B.job

type=command

command=echo "This B job"

#D.job

type=command

command=echo "This D job"

dependencies=subflow

此时工作流会变为

这样在这个project中,就可以分别对两个流进行调度的设定,并且主流中的依赖会等待子流的运行,总体任务调度图也会非常的清晰

10.6 邮件提醒设置

Azkaban自带有邮件提醒功能,在web服务器的conf/azkaban.properties文件中,有以下字段

# mail settings

mail.host=

mail.sender=

mail.user=

mail.password=

job.failure.email=

job.success.email=

job.notify.email=

这里面所有的值都是设定的是邮件的发送者,当初以为是设定接受者,被坑了好久,而邮件的接受者设置则需要前文所说的job文件的failure.emailssuccess.emails ,notify.emails三个参数,但是这三个属性不是直接加在.job文件中,而是需要在所有.job文件的根目录下创建一个以.properties为扩展名的文件
例如:

# system.properties

success.emails=xxx@xx.com

failure.emails=xxx@xx.com

一些其他需要全局作用的参数也可以添加在这个文件中,此属性文件会作用于全局job文件,一起打包上传即可。这样就可以实现任务成功或失败时的邮件提醒。

Azkaban使用教程相关推荐

  1. Azkaban的安装教程

    Azkaban的安装教程 文章目录 Azkaban的安装教程 写在前面 集群模式安装 下载安装包 上传 **tar** 包 解压 配置 **MySQL** 配置 **Executor Server** ...

  2. azkaban安装编译3.86 教程

    Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves t ...

  3. Azkaban简介及安装教程

    前言: 最近在实际工作中玩到了Azkaban,虽然之前有简单的接触,但是真正用到的时候,才能体会到这个工具的实用性有多强.下面就写个系列文章来记录下azkaban从简介及安装配置再到简单使用的一个过程 ...

  4. azkaban详细使用教程

    服务器升级阶段,闲来无事,整理一下azkaban详细使用方法: 一.用户管理 1 登录 登录应用管理平台,初始安装时的默认账户密码为:azkaban / azkaban: 2 用户管理 成功登录后,在 ...

  5. 1668智能下数教程视频_你需要的教程合集更新

    最近又收集了一波网络安全资源,在文章最底部.花了将近一天时间整理,只求各位小哥哥能点个在看,分享给身边的朋友. 网络安全 --职业发展(渗透的最底部) 2019网络安全初识与职业发展https://p ...

  6. 视频教程-大数据电视收视率实战项目教程(企业级案例)-Spark

    大数据电视收视率实战项目教程(企业级案例) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国移动等知名企业.拥 ...

  7. 《尚硅谷大数据Hadoop》教程

    尚硅谷大数据Hadoop教程 概论 入门 HDFS MapReduce YARN 由于对这方面的知识只是做一个了解,所以详细的东西并不会做笔记. 概论 大数据的特点 海量.高速.多样.低价值密度 入门 ...

  8. 辅助系统(Flume,azkaban,sqoop)

    前言 在一个完整的大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中 ...

  9. 大数据学前准备--zookeeper详解与集群搭建(保姆级教程)

    前言 本人是才学完大数据的无业游民,我将会总结学习收获或发表自己的学习心得,期望给初学者也为自己今后复习提供一些帮助. 我将陆续发布大数据阶段所学,包括但不限于(hadoop,hive,hbase,p ...

最新文章

  1. log4j超详细讲解
  2. [环境]Mac Homebrew自动安装
  3. 有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素
  4. android 工作 绝望,我的人生绝望手游
  5. Word2Vec ——gensim实战教程
  6. 【考试战报】ORACLE OCP 19C考试通过
  7. poj 1958 Strange Towers of Hanoi
  8. synchronized(xxx.class)
  9. python基础知识纵览(下)
  10. 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
  11. linux识别UDF文件系统吗,Linux Kernel UDF文件系统本地缓冲区溢出漏洞
  12. 混凝土墙开洞_新乐专业混凝土切割报价适中
  13. oracle查询题目2道
  14. Program Size: data=9.0 xdata=0 code=47
  15. python logging详解及自动添加上下文信息
  16. C# 字符串string的基本操作
  17. as 运算符 与 where T : class
  18. ios手机游戏 带你体验拉斯维加斯的疯狂
  19. Json 转换 1 转成 true 0 转成false
  20. jmeter throughput图表_jmeter生成HTML格式性能测试报告

热门文章

  1. 【每日新闻】牛津大学报告:中国人工智能实力只有美国一半 | 工信部:一季度生产集成电路399.9亿块,同比增长15.2%...
  2. 【猫猫的Unity Shader之旅】之初识屏幕特效
  3. 论 Web 2.0 时代PHP的地位
  4. 惠普台式电脑引导不了系统_惠普电脑如何进入bios设置引导模式
  5. 丰胸产品排行榜第一丰乳健胸精油
  6. HTML5 新增的主体结构元素
  7. python随机字母不重复_PTA Python语言程序设计(7)7-2 输出10个不重复的英文字母 (15分)...
  8. 公司员工满意度调查及结果
  9. 22周岁,我完成了两件人生大事
  10. android 指纹拍照,Android:Keycode 添加新按键:指纹拍照