0462-如何在Hue中建立Shell Action工作流續
Fayson的github: https://github.com/fayson/cdhproject
推薦關注微信公眾號:“Hadoop實操”,ID:gh_c4c535955d0f,或者掃描文末二維碼。
1.文件編寫目的
Fayson在前面的文章《Hue中使用Oozie建立Shell工作流在指令碼中切換不同使用者》,裡面介紹了Shell Action的建立,在文中我們相應的Shell指令碼是放在每個Oozie作業對應的WorkSpace的lib目錄下。對於一些對於所有用於都公用的Shell指令碼可能放在HDFS的公共目錄下,那這時建立Shell Action需要注意些什麼呢?本篇文章Fayson主要介紹在Hue中建立Shell Action指定工作空間外的Shell指令碼。
- 測試環境
1.RedHat7.2
2.CM和CDH版本為5.15.0
2.測試環境準備
1.準備測試用的Shell指令碼,內容如下:
#!/bin/bash
cd ~
ls
2.將準備好的Shell指令碼put到HDFS上
[[email protected] disk1]# hadoop fs -mkdir -p /oozie/common/shell [[email protected] disk1]# hadoop fs -put test.sh /oozie/common/shell [[email protected] disk1]# hadoop fs -ls /oozie/common/shell
3.Hue建立Shell Action
1.登入Hue進入WorkFlow建立介面
2.點選“Add”新增Shell指令碼的名稱,在Shell Action中指定FILES引數
3.選擇test.sh指令碼在HDFS上儲存的公共路徑
到此完成了Shell Action工作流的建立,儲存執行吧。
4.測試執行
1.點選右上角的執行圖示
2.執行結果顯示如下:
5.總結
1.Hue中建立的Oozie WorkFlow預設所有第三方依賴(如: jar、lib及可執行檔案等),執行時會預設會找當前WorkFlow的WorkSpace的lib目錄下獲取。這也是前面Fayson將shell指令碼上傳至lib目錄下作業執行時沒有報錯的原因。
2.在指定的第三方依賴不在WorkSpace的lib目錄下存在時,需要使用FILES引數來進行設定,指定依賴的檔案或包所在目錄。
3.當然這裡將Shell指令碼放在HDFS的公共目錄頁需要考慮這些指令碼的訪問許可權,如果執行使用者對該指令碼沒有讀取的許可權,同樣會導致你的WorkFlow執行失敗。
為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。
原創文章,歡迎轉載,轉載請註明:轉載自微信公眾號Hadoop實操