Oozie基于Hue全流程调度
目錄
準備
創建工作流
定時調度
Bundle
準備
1. 數倉流程說明
業務數倉整個流程大致分為六個階段,每個階段都依賴于上階段的計算結果,所以必須要上階段執行完成再執行下一階段:
大致流程:
MySQL -> HDFS -> ODS -> DWD -> DWS -> ADS -> MySQL
?
具體流程:
1. MySQL業務通過Sqoop數據導入HDFS
2. 將HDFS數據導入Hive數倉ODS層
3. 將ODS數據簡單清洗寫入DWD層
4. 將DWD數據輕度匯總寫入DWS層寬表
5. 將DWS層數據統計結果寫入ADS層
6. 將ADS層數據通過Sqoop導出到MySQL匯總表
2. 腳本
提前已經把各部分任務寫成shell腳本。
對應流程:
sqoop_import -> ods_db -> dwd_db -> dws_db -> ads_db -> sqoop_export
上傳shell腳本到HDFS,自己指定位置即可
sudo -uhdfs hadoop fs -put /bin/oozie/* /user/bin/oozie/
3. JDBC
因為調度中需要使用sqoop導入導出MySQL,所以先將MySQL驅動mysql-connector-java-5.1.47.jar復制到hadoop、sqoop、
以及Oozie的HDFS目錄下sqoop中,lib_20181213173721,這個是Oozie搭建時生成,各不相同
?
cp jdbc.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib
cp jdbc.jar /opt/cloudera/parcels/CDH/lib/sqoop/lib
sudo -uhdfs hadoop fs -put jdbc.jar /user/oozie/share/lib/lib_20181213173721/sqoop
?
創建工作流
1. 創建工作流
2. 編輯工作流
選擇Action操作,修改好調度任務名和描述。大多數情況下,我們會把要執行的任務寫成腳本執行。這里就選擇shell,直接把要執行的任務類型拖拽到下面指定的區域。
3. 上傳腳本
從第一步開始,sqoop_import.sh
4. 添加文件
就是剛才選擇的腳本
5. 填寫參數
腳本里需要的參數,盡量設置為動態自動獲取,如 ${date}
第一步的參數是所有文件和當天日期,后面的只需要日期,最后一步是導出所有結果,相應填入
6. 依次添加后續任務
添加文件和設置相應參數
7. 保存,或者運行
8. 狀態提示
運行后會有狀態提示頁面,可以看到任務進度
9. 其他
查看已經存在的調度任務
點擊調度任務的頁面情況
定時調度
1. 創建定時計劃(schedule)
2. 修改屬性
修改定時任務名和描述
3. 添加任務
添加需要定時調度的任務
4. 設置調度時間
5. Crontab高級語法模式
6. 參數設置
sm-workflow的參數都是寫死的,沒有設置動態,這里的下拉列表就不會有可選項。
設置參數
將sm-workflow的日期修改為 ${do_date},保存
進入定時計劃sm-dw中,會看到有參數 do_date
填入相應參數,前一天日期
${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, ‘DAY’), ‘yyyyMMdd’)}
Oozie常用系統常量
當然,也可以通過這樣將參數傳入workflow任務中,代碼或者shell中需要的參數。
如,修改sm-workflow 中的 sqoop_import.sh,添加一個參數 ${num}。
編輯文件(需要登陸Hue的用戶有對HDFS操作的權限),修改shell中的一個值為參數,保存。
在workflow中,編輯添加參數 ${num} ,或者num=${num} 保存。
進入schedule中,可以看到添加的參數,編輯輸入相應參數即可。
Bundle
Bundle統一管理所有定時調度,階段劃分:Bundle > Schedule > workflow
總結
以上是生活随笔為你收集整理的Oozie基于Hue全流程调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Navicat通过跳板机连接数据库
- 下一篇: CDH6.3.0 HUE 整合 Oozi