008.Azkaban-3.x 创建Flow

2019-09-30  本文已影响0人  CoderJed

1. Flow 2.0 基础

使用Azkaban Flow 2.0 来创建任务流,Flow 1.0 将被废弃

azkaban-flow-version: 2.0
nodes:
  - name: jobA
    type: command
    config:
      command: echo "This is an echoed text."
[hadoop@beh07 tmp]$ mkdir zip-test
[hadoop@beh07 tmp]$ mv flow20.project basic.flow zip-test/
[hadoop@beh07 tmp]$ cd zip-test/
# 将目录下的所有文件打成一个zip包
[hadoop@beh07 zip-test]$ zip -r Archive.zip .

# 错误操作
# 这是把zip-test这个目录打成一个zip包
[hadoop@beh07 tmp]$ zip -r Archive.zip zip-test

2. Job Dependencies

使用dependsOn标签配置Job之间的依赖,以下示例中,在jobA和jobB成功运行之后,jobC将开始运行。

nodes:
  - name: jobC
    type: noop
    # jobC depends on jobA and jobB
    dependsOn:
      - jobA
      - jobB

  - name: jobA
    type: command
    config:
      command: echo "This is an echoed text."

  - name: jobB
    type: command
    config:
      command: pwd

3. Job Config

Azkaban支持很多类型的Job,在type标签中指定即可,在config标签下使用key: value形式可以加入更多的配置。以下配置中,设置了要执行的pig脚本的位置,这个脚本需要和flow20.project以及basic.flow这两个文件一起打成zip包并上传到Project。

nodes:
  - name: pigJob
    type: pig
    config:
      pig.script: sql/pig/script.pig

4. Flow Config

Flow级别的配置也使用config标签,但是它与node标签同级。Flow级别的配置将会作用于所有的Job。

---
config:
  user.to.proxy: foo
  failure.emails: noreply@foo.com

nodes:
  - name: jobA
    type: command
    config:
      command: echo "This is an echoed text."

5. 多级Flow

你可以在Flow中添加其他子Flow,而不仅是添加Job。

nodes:
  - name: embedded_flow
    type: flow
    config:
      prop: value
    nodes:
      - name: jobB
        type: noop
        dependsOn:
          - jobA

      - name: jobA
        type: command
        config:
          command: pwd
上一篇 下一篇

猜你喜欢

热点阅读