azkaban使用教程

登陸

https://localhost:8443
注意是https,採用的是jetty ssl連接。輸入帳號密碼azkaban/azkanban(若是你以前沒有更改的話)python

首頁有四個菜單shell

  • projects:最重要的部分,建立一個工程,全部flows將在工程中運行。
  • scheduling:顯示定時任務
  • executing:顯示當前運行的任務
  • history:顯示歷史運行任務

主要介紹projects部分
首先建立一個工程,填寫名稱和描述,好比o2olog。oop

type=command
command=echo "data 2 hive"

一個簡單的job就建立好了,解釋下,type的command,告訴azkaban用unix原生命令去運行,好比原生命令或者shell腳本,固然也有其餘類型,後面說。測試

一個工程不可能只有一個job,咱們如今建立多個依賴job,這也是採用azkaban的首要目的。spa

flows建立

咱們說過多個jobs和它們的依賴組成flow。怎麼建立依賴,只要指定dependencies參數就好了。好比導入hive前,須要進行數據清洗,數據清洗前須要上傳,上傳以前須要從ftp獲取日誌。
定義5個job:unix

  1. o2o_2_hive.job:將清洗完的數據入hive庫
  2. o2o_clean_data.job:調用mr清洗hdfs數據
  3. o2o_up_2_hdfs.job:將文件上傳至hdfs
  4. o2o_get_file_ftp1.job:從ftp1獲取日誌
  5. o2o_get_file_fip2.job:從ftp2獲取日誌

依賴關係:
3依賴4和5,2依賴3,1依賴2,4和5沒有依賴關係。日誌

o2o_2_hive.jobcode

type=command
# 執行sh腳本,建議這樣作,後期只需維護腳本就好了,azkaban定義工做流程
command=sh /job/o2o_2_hive.sh
dependencies=o2o_clean_data

o2o_clean_data.jobip

type=command
# 執行sh腳本,建議這樣作,後期只需維護腳本就好了,azkaban定義工做流程
command=sh /job/o2o_clean_data.sh
dependencies=o2o_up_2_hdfs

o2o_up_2_hdfs.jobhadoop

type=command
#須要配置好hadoop命令,建議編寫到shell中,能夠後期維護
command=hadoop fs -put /data/*
#多個依賴用逗號隔開
dependencies=o2o_get_file_ftp1,o2o_get_file_ftp2

o2o_get_file_ftp1.job

type=command
command=wget "ftp://file1" -O /data/file1

o2o_get_file_ftp2.job

type=command
command=wget "ftp:file2" -O /data/file2

能夠運行unix命令,也能夠運行python腳本(強烈推薦)。將上述job打成zip包。
ps:爲了測試流程,我將上述command都改成echo +相應命令

上傳:

點擊o2o_2_hive進入流程,azkaban流程名稱以最後一個沒有依賴的job定義的。

右上方是配置執行當前流程或者執行定時流程。

Flow view:流程視圖。能夠禁用,啓用某些job
Notification:定義任務成功或者失敗是否發送郵件
Failure Options:定義一個job失敗,剩下的job怎麼執行
Concurrent:並行任務執行設置
Flow Parametters:參數設置。

1.執行一次
設置好上述參數,點擊execute。

綠色表明成功,藍色是運行,紅色是失敗。能夠查看job運行時間,依賴和日誌,點擊details能夠查看各個job運行狀況。

咱們能夠點擊Detail查看詳細輸出,以及報錯。

2.定時執行

其餘job配置選項

  • 能夠定義job依賴另外一個flow,配置

type=flow
flow.name=fisrt_flow
  • 能夠設置每一個job中子命令

type=command
command=echo "hello"
command.1=echo "world"
  • 能夠配置job失敗重啓次數,及間隔時間,好比,上述ftp獲取日誌,我能夠配置重試12次,每隔5分鐘一次。

type=command
command=wget "ftp://file1" -O /data/file1
retries=12
#單位毫秒
retry.backoff=300000
相關文章
相關標籤/搜索