博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Azkaban Flow 2.0 使用简介
阅读量:5248 次
发布时间:2019-06-14

本文共 2119 字,大约阅读时间需要 7 分钟。

本文上接,对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.projectecho "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.flownodes:   - 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

具体过程略,可参考前一篇博文

备注:与之前不同的是,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://www.cnblogs.com/remainsu/p/azkaban-flow-20-shi-yong-jian-jie.html

你可能感兴趣的文章
[bzoj1004] [HNOI2008] Cards
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
spring与quartz整合
查看>>
Kattis之旅——Eight Queens
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>