1. Flow 2.0 基礎
使用Azkaban Flow 2.0 來建立任務流,Flow 1.0 将被廢棄
- 建立一個名為
的文本檔案,添加如下内容用以說明這是一個Azkaban Flow 2.0的項目:flow20.project
azkaban-flow-version: 2.0
- 建立一個名為
的文本檔案,其中定義了一個project中所有需要運作的job,使用basic.flow
和name
來定義一個job,大部分job都會需要type
這個配置,詳細的内容在下文中說明,這裡隻是一個簡單的示例:config
nodes:
- name: jobA
type: command
config:
command: echo "This is an echoed text."
- 選擇上面建立好的兩個檔案,然後将其壓縮為一個名為
的zip檔案,注意,是把兩個檔案壓縮為一個檔案,Linux中的操作如下:Archive.zip
[[email protected] tmp]$ mkdir zip-test
[[email protected] tmp]$ mv flow20.project basic.flow zip-test/
[[email protected] tmp]$ cd zip-test/
# 将目錄下的所有檔案打成一個zip包
[[email protected] zip-test]$ zip -r Archive.zip .
# 錯誤操作
# 這是把zip-test這個目錄打成一個zip包
[[email protected] 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: [email protected]
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
Azkaban