azkaban使用--傳入動態參數


轉:

azkaban的工作流中的參數可以分為如下幾個類型:azkaban UI 頁面輸入參數, 環境變量參數,

job作業文件中定義的參數,工作流的用戶定義的屬性文件,上游作業傳遞給下游的參數,
工作流運行時產生的系統參數,job的common參數等。

參數的作業范圍分類,對當前job有效局部有效,對整個工作流全局有效。

 


1. Job配置中的參數
全局參數,在整個工作流的作業文件配置中,都可以通過 ${參數名} 的方式引用使用。

  • common參數配置

除了type,command,decpendencies三個參數外,還有如下一些保留參數可以為每個job配置

 

 


用戶也可以自用一下參數,用於接收外部或者上游job的參數,也可用於傳遞給shell腳本等。一個flow的email屬性,只會取最后一個job的配置,其他的job的email配置將會被忽略。

  • Runtime 屬性

這些屬性在job運行期間自動被添加.

  •  


  • 參數名不能有空格,標點符號等。參數繼承

    后綴名為.properties的文件將會作為參數文件加載,並且為flow中每個job所共享,屬性文件通過目錄的分層結構繼承
    比如,在zip包中有以下結構
    system.properties baz.job myflow/ myflow.properties myflow2.properties foo.job bar.job
    system.properties是全局的屬性,將會被baz.job和myflow目錄下的foo.job和bar.job使用,但是baz.job不會繼承myflow.properties和myflow2.properties的屬性,因為是它的下層.

  • 參數替換

    azkaban支持參數替換;替換參數樣式: azkaban會替換{}中的參數。無論${parameterName} 在job file中或者在參數文件中或者運行時參數發現,都可以被替換為對應的值。

    # shared.properties replaceparameter=bar
    # myjob.job param1=mytest foo=${replaceparameter} #${replaceparameter}會替換為bar param2=${param1} # ${param1} 會被替換成mytest。

    前面這個例子,在myjob 作業運行前,foo 會被賦值為bar , param2會被賦值為mytest.

  • Parameter Passing:參數傳遞

    azkaban以job執行過程中,傳遞進來的臨時參數,運行時參數,項目中配置文件的參數,job定義中參數等 都保存在 ${JOB_PROP_FILE}文件中,保存格式為key=value。執行job的中shell命令時,可以作為參數傳遞。
    JOB_PROP_FILE 是一個環境變量參數。

  • Parameter Output:參數輸出

    一個任務運行結束,可以將一些參數寫入到${JOB_OUTPUT_PROP_FILE}文件 中,azkaban會將這些參數傳遞到下游依賴的的job的參數文件${JOB_PROP_FILE}文件中,供下游job引用。
    寫如到${JOB_OUTPUT_PROP_FILE}文件中參數需要是json格式的,否則會報json解析錯。
    JOB_OUTPUT_PROP_FILE也是一個環境變量參數。

2.web UI 傳入,shell接收

[root@localhost shell]# cat acceptUIParam.job 
##作業定義文件UI輸入參數接收:
job_param=${ui_input}

##作業定義文件腳本命令行引用UI輸入參數:
sh testUIInput.sh "${job_param}"
[root@localhost shell]# cat testUIInput.sh 
echo "inputParameter:$1"
date

[root@localhost shell]# zip azkaban_job201904290932.zip acceptUIParam.job testUIInput.sh
  adding: acceptUIParam.job (deflated 20%)
  adding: testUIInput.sh (stored 0%)
[root@localhost shell]# 


create project

 

upload zip file

execute flow

 

 

add-row(add Flow parameter)-->execute

 

 查看結果及日志

detail command output

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM