本文上接《Azkaban 3.73.1 使用简介》,对Azkaban使用Flow 2.0来创建工作流做简单说明

声明:官方建议使用Flow 2.0来创建Azkaban工作流,且Flow 1.0将被弃用

目录

一、简单的Flow

1. 新建 flow20.project 文件

  • 这是一个必须的文件,且文件名固定为: flow20.project
  • 文件仅一行内容:azkaban-flow-version: 2.0 ,其作用为表明这是Azkaban Flow 2.0的项目
touch flow20.project
echo "azkaban-flow-version: 2.0" > flow20.project

2. 新建 .flow 文件

  • 这同样是一个必须的文件,且文件固定使用:.flow 作为扩展名,如:money.flow、item.flow
  • .flow 文件常用标签

    标签 备注
    nodes 这其中将包含所有要运行的job
    nodes.name job的名字
    nodes.type job类型,如:command、pig
    nodes.config 以键值对的形式,配置要执行的命令或脚本
    config 1. 以键值对的形式,为整个工作流定义参数
    2. 定义的参数在整个Flow中均有效
    3. 使用时通过 ${param_key} 引用定义好的参数

    举例:

    # 文件名:simple_1.flow
    nodes:
    - name: jobA
    type: command
    config:
    command: echo "This is an echoed text by simple flow"

3. 打包

压缩上述新建的 flow20.project 和 .flow文件 到同一个.zip文件中

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

4. 创建Project & 上传zip & 运行Flow

具体过程略,可参考前一篇博文《Azkaban 3.73.1 简单使用》第3.3节的内容

备注:与之前不同的是,Flow的名字不再是最后一个没有依赖的job的名字,而是 .flow 文件的名字

二、Job间有依赖关系的Flow

  1. 新建两个文件:flow20.project 和 .flow 为扩展名的文件
  2. 打包zip & 上传zip & 运行

详细过程略,.flow 文件举例:

# 文件名:dependsOn.flow
nodes:
- name: jobC
type: command
config:
command: echo "This is jobC, depends on jobA and jobB"
dependsOn:
- jobA
- jobB - name: jobA
type: command
config:
command: echo "This is jobA." - name: jobB
type: command
config:
command: echo "This is jobB."

三、嵌入式Flow(Flow间存在依赖)

  1. 新建两个文件:flow20.project 和 .flow 为扩展名的文件
  2. 打包zip & 上传zip & 运行

注意:依赖的Flow节点的type必须指定为:flow

详细过程略,.flow 文件举例:

config:
param.test: param_test nodes:
- name: jobC
type: command
config:
command: echo ${param.test} "This is jobC, embedded on embedded_flow."
dependsOn:
- embedded_flow - name: embedded_flow
type: flow
config:
param.flow.test: param_flow_test
nodes:
- name: jobB
type: command
config:
command: echo "This is jobB."
dependsOn:
- jobA - name: jobA
type: command
config:
command: echo ${param.flow.test} "This is jobA."

说明:

  1. config 参数无特殊意义,仅作演示使用,
  2. 与之前不同的是,flow间的依赖,所依赖的flow在web页面中的显示是如下图的样子

附录

官方文档

https://azkaban.readthedocs.io/en/latest/createFlows.html#

例子源码

https://github.com/remainsu/azkaban_job

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

  1. Azkaban学习之路(四)—— Azkaban Flow 2.0的使用

    一.Flow 2.0 简介 1.1 Flow 2.0 的产生 Azkaban 目前同时支持 Flow 1.0 和 Flow2.0 ,但是官方文档上更推荐使用Flow 2.0,因为Flow 1.0会在将 ...

  2. 分布式任务调度框架 Azkaban —— Flow 2.0 的使用

    一.Flow 2.0 简介 1.1 Flow 2.0 的产生 Azkaban 目前同时支持 Flow 1.0 和 Flow2.0 ,但是官方文档上更推荐使用 Flow 2.0,因为 Flow 1.0 ...

  3. Azkaban学习之路(三)—— Azkaban Flow 1.0 的使用

    一.简介 Azkaban主要通过界面上传配置文件来进行任务的调度.它有两个重要的概念: Job: 你需要执行的调度任务: Flow:一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow. 目 ...

  4. 分布式任务调度框架 Azkaban —— Flow 1.0 的使用

    一.简介 Azkaban 主要通过界面上传配置文件来进行任务的调度.它有两个重要的概念: Job: 你需要执行的调度任务: Flow:一个获取多个 Job 及它们之间的依赖关系所组成的图表叫做 Flo ...

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

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

  6. Azkaban 2.5.0 搭建

    一.前言 最近试着参照官方文档搭建 Azkaban,发现文档很多地方有坑,所以在此记录一下. 二.环境及软件 安装环境: 系统环境: ubuntu-12.04.2-server-amd64 安装目录: ...

  7. Azkaban 2.5.0 搭建和一些小问题

    安装环境: 系统环境: ubuntu-12.04.2-server-amd64 安装目录: /usr/local/ae/ankaban JDK 安装目录: export JAVA_HOME=/usr/ ...

  8. Spring Web Flow 2.0 入门

    转载: https://www.ibm.com/developerworks/cn/education/java/j-spring-webflow/index.html 开始之前 关于本教程 本教程通 ...

  9. Python 3.0(一) 简介

    Python 3.0(一) 简介 [目录] 1.简介 2.python特点 3.安装 简介: Python是可以称得上即简单又功能强大的少有的语言中的一种.你将会惊喜地发现,专注于问题的解决方案而不是 ...

随机推荐

  1. C# NetCore使用AngleSharp爬取周公解梦数据 起因和页面数据拆解

    起因 最近突然心血来潮想做个小程序,学习一下小程序开发流程,然后新手就想做个查询的就可以了,少点交互能力,这种思来想去还是周公解梦比较靠谱, 网上一搜,还真有小程序源码,但是这里面似乎数据都是取第三方 ...

  2. [转帖 ]MySQL 5.7 新特性 JSON

    MySQL 5.7 新特性 JSON 的创建,插入,查询,更新 作者: 我不是鱼 (2016-08-31 16:13)分类: MySQL   标签: MySQL JSON MySQL JSON 应用 ...

  3. 2-19-使用apache搭建web网站

    1 搭建一台测试web服务器 案例: 部门内部搭建一台WEB服务器,采用的IP地址和端口为192.168.10.34:80,首页采用index.html 文件.管理员E-mail地址为 xuegod@ ...

  4. JAVASCRIPT高程笔记-------第五章 引用类型

    一.Object类型 1.1创建方式 ①new关键字 : var person = new Oject(); ②给定直接量: var person = { name : "zhangsan& ...

  5. HTTP协议-请求报文

  6. wpf-MVVM界面自适应:界面自适应及字体自适应

    原文:wpf-MVVM界面自适应:界面自适应及字体自适应 1,界面自适应 界面先划分Region,每个填充Region的View不设置Width属性,即可按照Region划分的比例,自适应屏幕分辨率 ...

  7. .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表

    /// <summary> /// 解析xml字符串 转换为实体类列表数据 /// </summary> /// <param name="xmlStr&quo ...

  8. jQuery简明教程

    本文参考w3cshool中文教程,网址:http://www.w3school.com.cn/jquery/index.asp 简介 jQuery是一个Javascript库,使用其的主要目的是简化J ...

  9. 教你如何在Deepin搭建Qt开发环境(sudo apt-get install qt5-default qt5-qmake g++ qtcreator,也许对龙芯版的Deepin也有用)

    首先教大家一种很简单的方法,打开终端输入以下命令: sudo apt-get install qt5-default qt5-qmake g++ qtcreator 上面的命令会自动帮你安装qt5开发 ...

  10. new和delete必须成对出现吗?【网上集合贴+个人总结】

    new和delete必须成对出现吗?[网上集合贴+个人总结] 1.从内存泄露与否的角度考虑 new 和 delete不一定要成对出現.理论上是這樣的.但是从习惯上來說,new delete成對出現是一 ...