Oozie Shell Action 配置 Oozie Shell Action 配置 Shell Action 運行Shell命令或者shell腳本,每個流程任務只有在當前的Shell Action命令執行 完成之後才會繼續執行後面的節點要運行一個shell任務,需要給Shell Action節點 ...
Oozie Shell Action 配置
Oozie Shell Action 配置
- Shell Action 運行Shell命令或者shell腳本,每個流程任務只有在當前的Shell Action命令執行 完成之後才會繼續執行後面的節點
- 要運行一個shell任務,需要給Shell Action節點配置job-tracker,name-node,shell執行命令執行參數和一些必要的參數
- Shell Action 可以用來配置成在執行一個Shell任務之前去創建或者刪除HDFS目錄
- Shell 應用的配置可以使用job-xml文件中的元素,也可以使用內部元素來配置,像EL表達式也支持在內部元素中的配置,內部元素的配置可以覆蓋外部文件中的配置。
- 跟mr任務一樣,在Shell任務中也可以使用文件和附件具體參見【http://archive.cloudera.com/cdh/3/oozie/WorkflowFunctionalSpec.html#a3.2.2.1_Adding_Files_and_Archives_for_the_Job】
- 當Shell任務執行完成之後,其產生的輸出文件可以被流程任務使用,這些信息可以被決策結點使用,如果要是Shell 任務產生的輸出對流程任務可用,必須滿足兩個條件:1,輸出的格式必須是合法的java屬性文件2,輸出的大小不能超過2KB
Shell Action格式
- prepare元素裡面配置啟動job前要刪除或者創建的文件夾,文件夾路徑必須是以hdfs://HOST:PORT開頭。
- job-xml指定一個存在的配置文件。
- configuration裡面配置傳遞給shell job的參數。
- exec元素包含要執行的shell命令的路徑。可以給shell命令添加參數。
- argument元素指定要傳遞給shell腳本的參數。
- env-var包含傳遞給shell命令的環境變數。env-var只能包含一個環境變數和值。如果這個環境變數包含像$PATH一樣的,那它必須寫成PATH=$PATH:mypath。不能用${PATH},因為它將會被EL解析。
- capture-output元素指定用來捕獲shell腳本的標準輸出。可以通過String action:output(String node, String key)函數【EL函數】來獲得輸出。
Shell Action 使用實例一:Oozie自帶shell案例運行,oozie運行shell命令首先下載Oozie自帶的例子,解壓,打開到 examples\apps\shell 目錄,根據自己的安裝環境修改之後的job.properties文件如下