Azkaban使用教程
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的作业
创建之前我们先了解下之间的关系,一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。
首先,需要创建以.job为扩展名的文件,一个文件即代表一个任务。
所有的job都需要一个知道他们如何去执行的type。一般的,有这样四种job类型:Java、command、javaprocess和pig。
本文以type=command为例
其次在这个文件中添加这个任务所需的参数与参数值,
必须的参数有type与command
type=command
command=echo 'jobs start'
保存为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
注意
子流文件的参数设置需要遵循:
- flow.name为设定的子流subflow的结束job文件的文件名
- 子流内部的起始文件不存在依赖 ,其依赖关系在type=flow这个文件中设定
- 子流后面的文件的依赖则为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.emails,success.emails ,notify.emails三个参数,但是这三个属性不是直接加在.job文件中,而是需要在所有.job文件的根目录下创建一个以.properties为扩展名的文件
例如:
# system.properties
success.emails=xxx@xx.com
failure.emails=xxx@xx.com
一些其他需要全局作用的参数也可以添加在这个文件中,此属性文件会作用于全局job文件,一起打包上传即可。这样就可以实现任务成功或失败时的邮件提醒。
Azkaban使用教程相关推荐
- Azkaban的安装教程
Azkaban的安装教程 文章目录 Azkaban的安装教程 写在前面 集群模式安装 下载安装包 上传 **tar** 包 解压 配置 **MySQL** 配置 **Executor Server** ...
- azkaban安装编译3.86 教程
Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves t ...
- Azkaban简介及安装教程
前言: 最近在实际工作中玩到了Azkaban,虽然之前有简单的接触,但是真正用到的时候,才能体会到这个工具的实用性有多强.下面就写个系列文章来记录下azkaban从简介及安装配置再到简单使用的一个过程 ...
- azkaban详细使用教程
服务器升级阶段,闲来无事,整理一下azkaban详细使用方法: 一.用户管理 1 登录 登录应用管理平台,初始安装时的默认账户密码为:azkaban / azkaban: 2 用户管理 成功登录后,在 ...
- 1668智能下数教程视频_你需要的教程合集更新
最近又收集了一波网络安全资源,在文章最底部.花了将近一天时间整理,只求各位小哥哥能点个在看,分享给身边的朋友. 网络安全 --职业发展(渗透的最底部) 2019网络安全初识与职业发展https://p ...
- 视频教程-大数据电视收视率实战项目教程(企业级案例)-Spark
大数据电视收视率实战项目教程(企业级案例) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国移动等知名企业.拥 ...
- 《尚硅谷大数据Hadoop》教程
尚硅谷大数据Hadoop教程 概论 入门 HDFS MapReduce YARN 由于对这方面的知识只是做一个了解,所以详细的东西并不会做笔记. 概论 大数据的特点 海量.高速.多样.低价值密度 入门 ...
- 辅助系统(Flume,azkaban,sqoop)
前言 在一个完整的大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中 ...
- 大数据学前准备--zookeeper详解与集群搭建(保姆级教程)
前言 本人是才学完大数据的无业游民,我将会总结学习收获或发表自己的学习心得,期望给初学者也为自己今后复习提供一些帮助. 我将陆续发布大数据阶段所学,包括但不限于(hadoop,hive,hbase,p ...
最新文章
- log4j超详细讲解
- [环境]Mac Homebrew自动安装
- 有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素
- android 工作 绝望,我的人生绝望手游
- Word2Vec ——gensim实战教程
- 【考试战报】ORACLE OCP 19C考试通过
- poj 1958 Strange Towers of Hanoi
- synchronized(xxx.class)
- python基础知识纵览(下)
- 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
- linux识别UDF文件系统吗,Linux Kernel UDF文件系统本地缓冲区溢出漏洞
- 混凝土墙开洞_新乐专业混凝土切割报价适中
- oracle查询题目2道
- Program Size: data=9.0 xdata=0 code=47
- python logging详解及自动添加上下文信息
- C# 字符串string的基本操作
- as 运算符 与 where T : class
- ios手机游戏 带你体验拉斯维加斯的疯狂
- Json 转换 1 转成 true 0 转成false
- jmeter throughput图表_jmeter生成HTML格式性能测试报告
热门文章
- 【每日新闻】牛津大学报告:中国人工智能实力只有美国一半 | 工信部:一季度生产集成电路399.9亿块,同比增长15.2%...
- 【猫猫的Unity Shader之旅】之初识屏幕特效
- 论 Web 2.0 时代PHP的地位
- 惠普台式电脑引导不了系统_惠普电脑如何进入bios设置引导模式
- 丰胸产品排行榜第一丰乳健胸精油
- HTML5 新增的主体结构元素
- python随机字母不重复_PTA Python语言程序设计(7)7-2 输出10个不重复的英文字母 (15分)...
- 公司员工满意度调查及结果
- 22周岁,我完成了两件人生大事
- android 指纹拍照,Android:Keycode 添加新按键:指纹拍照