本文上接《Azkaban 3.73.1 集群搭建(Multiple Executor)》,对Azkaban的使用做简单说明

目录

简介

AzkabanWebServer中的三个主要元素:project、job、flow

  • project:工程/项目
  • job:任务,project中包含的需要执行的任务
  • flow:工作流,由各个job之间的依赖关系所组成

1. 登录

  1. 因为使用了SSl所以是 https
  2. host为启动WebServer服务的机器ip
  3. port为azkaban-web/conf/azkaban.properties中配置的jetty.ssl.port=8443
  4. 账号密码为 azkaban-web/conf/azkaban-users.xml 中配置的

2. 创建工程

首页四个重要的菜单

菜单 备注
projects 工程,最重要的部分,所有flows都在工程中运行
scheduling 显示定时任务
executing 显示当前运行的任务
history 显示历史运行任务

在“projects”菜单下点击“Create Project”完成创建工程,注意请使用英文,中文会报错

3. 创建job

  • web页面中并没有提供创建job的功能
  • 需要自行创建以.job为扩展名的文件,并将创其通过web页面上传,才能形成job任务
  • 所有的job都需要有一个知道他们如何去执行的type,附:Azkaban Jobtypes 文档
  • .job文件中常用的参数,如下

    参数 备注
    dependencies 定义依赖关系,参数值为该job依赖的任务文件名(不包括.job后缀)
    如果依赖多个,则以逗号分隔,如:job2,job5
    retries 任务失败时自动重启的次数
    retry.backoff 每一次任务尝试重启时之间等待的毫秒数
    working.dir 重新指定任务执行的工作目录,默认为目前正在运行的任务的工作目录
    failure.emails 任务失败时的邮件提醒设置,以逗号分隔多个邮箱
    success.emails 任务成功时的邮件提醒设置,以逗号分隔多个邮箱
    notify.emails 任务无论失败还是成功都邮件提醒设置,以逗号分隔多个邮箱

3.1 创建 .job 文件

使用 command type 举例:

job1

# 文件名:test_1.job
type=command
command=echo "This is a test job, name is test_1."
retries=5

job2

# 文件名:test_2.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_2."
command.1=pwd
command.2=ls –l /tmp

job3

# 文件名:test_3.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_3."
command.1=sh /opt/azkaban/job/test_script.sh

注意:/opt/azkaban/job/test_script.sh 为事先在服务器上写好的脚本,且强烈建议使用这种形式,后期维护时,只需修改此文件内容就可以了

job4

# 文件名:test_4.job
type=command
dependencies=test_2,test_3
retries=5
command=echo "This is a test job, name is test_4."
command.1=netstat -ntlp

job5

# 文件名:test_5.job
type=command
dependencies=test_4
retries=5
command=echo "This is a test job, name is test_5."
command.1=whoami

3.2 打包

压缩所有.job文件到同一个.zip文件中

  • 必须是zip压缩文件,当前仅支持zip
  • 所有文件必须在压缩包的根目录中,没有子目录

3.3 创建Flow

  • 上传打包好的zip文件,进而生成一个Flow
  • Flow的名称为最后一个没有依赖的.job文件的文件名

选择工程,直接点击“工程名”

工程页面的三个菜单

菜单 备注
Flows 工作流程,有多个job组成
Permissions 权限管理
Project Logs 工程日志

工程页面的三个按钮

按钮 备注
Delete Project 删除该工程
Upload 上传zip文件,进而生成Flow
Download 下载工程

点击“Upload”上传zip

3.4 运行Flow

Flow的三个操作按钮

按钮 备注
Execute Flow 配置或执行Flow
Executions Flow的执行记录
Summary Flow的总结

点击“Execute Flow”配置执行该流程

Execute Flow 的几个菜单

菜单 备注
Flow view 流程视图,“右键”可以禁用/启用某些job
Notification 定义任务成功或者失败是否发送邮件
Failure Options 定义一个job失败,剩下的job怎么执行
Concurrent 并行任务执行设置
Flow Parametters 参数设置

点击左下方的“Schedule”可设置定时执行,下方绿色字体为执行时间的提示

点击右下方“Execute”执行该Flow

“Continue”之后可以直接看到Flow的运行结果,“绿色”成功、“蓝色”执行中、“红色”失败

可查看每一个job的运行日志,如果有报错,也可以直接查看错误日志

首次运行是可能的报错

ERROR [ExecutorServlet] [Azkaban] executor became inactive before setting up the flow 1
azkaban.executor.ExecutorManagerException: executor became inactive before setting up the flow 1


需要手动去激活一下 executor,方式如下:

curl http://${executorHost}:${executorPort}/executor?action=activate

附录

参考

  1. 官方:https://azkaban.github.io/azkaban/docs/latest/#creating-flows
  2. https://juejin.im/post/5c8a289151882504715038cc
  3. https://www.jianshu.com/p/01188607a794
  4. http://www.jobplus.com.cn/article/getArticleDetail/51461

例子源码

https://github.com/remainsu/azkaban_job

Azkaban 3.73.1 使用简介的更多相关文章

  1. Azkaban Flow 2.0 使用简介

    官方建议使用Flow 2.0来创建Azkaban工作流,且Flow 1.0将被弃用 目录 目录 一.简单的Flow 1. 新建 flow20.project 文件 2. 新建 .flow 文件 3. ...

  2. Azkaban 3.73.1 集群搭建(Multiple Executor)

    一.简介 Azkaban是LinkedIn开源的任务调度框架,采用java编写 Azkaban功能和特点: 任务的依赖处理 任务监控,失败告警 任务流的可视化 任务权限管理 Azkaban具有轻量可插 ...

  3. Azkaban Condition Flow (条件工作流) 使用简介

    本文上接<Azkaban Flow 2.0 使用简介>,对Azkaban Condition Flow (条件工作流) 做简单介绍 目录 目录 条件工作流 介绍 作用 使用方式 支持的运算 ...

  4. Storm 实战:构建大数据实时计算

    Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书.大型互联网公司大数据实时处理干货分享!来自淘宝一线技术团队的丰富实践,快速掌握Storm技术精髓!) 阿里巴巴集团数据平台事业部 ...

  5. 【原创】大数据基础之Azkaban(1)简介、源代码解析

    Azkaban3.45 一 简介 1 官网 https://azkaban.github.io/ Azkaban was implemented at LinkedIn to solve the pr ...

  6. Azkaban 简介

    本文简单介绍一下Azkaban及其特点.azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab. 一.Azkaban是什么? 1.1 A ...

  7. Azkaban简介及使用

    一.Azkaban概述 Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题. 我们有需要按顺序运行的工作,从ETL工作到数据分析产品. 特点: 1)给用 ...

  8. Azkaban简介和使用

    概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 l 各任务单元之间存在时间先后及前后依 ...

  9. Azkaban学习之路(一)—— Azkaban 简介

    一.Azkaban 介绍 1.1 背景 一个完整的大数据分析系统,必然由很多任务单元(如数据收集.数据清洗.数据存储.数据分析等)组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流.复杂的工作流 ...

随机推荐

  1. Html 空格与换行

    空格   换行 <br/>   调行距 <div style="line-height:10px"></div>

  2. jquery 显示图片

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  3. AY的Dapper研究学习-基本入门-C#开发-aaronyang技术分享

    原文:AY的Dapper研究学习-基本入门-C#开发-aaronyang技术分享 ====================www.ayjs.net       杨洋    wpfui.com      ...

  4. centos搭建免费的ssl证书,大部分浏览器均支持!(let’s encrypt 的使用记录)

    安装certbot wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto 然后就是通过这个脚本获取证书,安装前先将NGINX 停一下. ...

  5. qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)

    有时在编译前需要准备一些文件,例如修改了 QtCreator 的编译输出目录: Build & Run > Default build directory,使用 Promote 后需要在 ...

  6. delphi读取ini文件

    ini文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如vb.vc.vfp.delphi等都提供了读写ini文件的方法,其中delphi中操作ini文件,最为简洁, ...

  7. 一小部分机器学习算法小结: 优化算法、逻辑回归、支持向量机、决策树、集成算法、Word2Vec等

    优化算法 先导知识:泰勒公式 \[ f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n \] 一阶泰勒展开: \[ f(x)\approx ...

  8. 《HTML开发Mac OS App 视频教程》 第001讲、入门教程

    土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/   使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...

  9. SYN012型B码时统

       SYN012型B码时统 产品概述 SYN012型B码时统是由西安同步电子科技有限公司精心设计.自行研发生产的一款通用性时统终端,内置高精度恒温晶振,接收GPS北斗双模卫星信号,10MHz外部参考 ...

  10. windows pyspider WEB显示框太小解决方法

    环境:windows7 + chrome + pyspider 解决方法: WEB预览框过小的原因在于页面元素的css属性height被替换为60px: CSS文件所在地方:C:\Users\Admi ...