目錄
2.多jar包導入執行(依賴jar包與主程序jar包分開打包)
Hue開發指南
Hue是面向 Hadoop 的開源用戶界面,可以讓您更輕鬆地運行和開發 Hive 查詢、管理 HDFS 中的文件、運行和開發 Pig 腳本以及管理表。
1.Spark文件打包成一個Jar包提交Hue運行
1.1 上傳Spark Jar包至HDFS文件系統
上傳方式不做具體介紹
1.2.Hue中創建Spark任務
打開Workflow
選擇 ACTIONS
添加Spark任務,將Spark移動到Workflow
填寫文件位置,與jar包名稱
Files與Jar/py name 相同即可
添加完成後填寫運行類名,運行參數
點擊配置可設置提交方式
設置提交方式
運行Spark
運行成功,我們可以設置Schedule進行任務定時執行
2.多jar包導入執行(依賴jar包與主程序jar包分開打包)
日常開發中,把所有相關依賴jar包打成一個包,後續每次程序更新都需要更新比較大jar包,我們把自己開發的源碼和相關依賴jar包單獨出來,後續每次只需要更新我們自己開發的源碼就可以了
2.1 修改worksapce
修改workspace,可以選擇程序所在目錄,程序運行時會自動讀取Workspace目錄下名稱爲 lib 的目錄 的jar包,所以設置Workspace時,我們在Workspace目錄下創建lib目錄並把依賴的jar包放在下面就可以了,下一步的 oozie.libpath 參數可以不進行設置,(這裏可以不修改,修改是爲了後期查看相關配置文件比較方便)
2.2 添加程序依賴jar包
單獨設置目錄,添加依賴jar包 ,這裏很重要依賴的jar包就從這裏導入
注意的是oozie.libpath 是我們上傳的依賴jar包
依賴jar包不能和oozie的系統spark jar包重複,如果重複會提示異常
org.apache.oozie.action.ActionExecutorException: JA009: cache file (mapreduce.job.cache.files) scheme: "hdfs" host: "nameservice1" port: -1 file: "/jast/spark-job/lib/chill_2.11-0.8.0.jar" conflicts with cache file (mapreduce.job.cache.files) hdfs://nameservice1/user/oozie/share/lib/lib_20180925112207/spark/chill_2.11-0.8.0.jar
oozie spark引用的系統jar包在
hdfs dfs -ls /user/oozie/share/lib/lib_20180925112207/spark
可通過以下命令對我們自己依賴jar包進行去重後,再上傳到依賴jar包
#刪除dir1目錄重複數據 rm `diff -rs dir1 dir2 |grep '相同'|awk '{print $2}'`
選擇我們程序的所有相關jar包
選擇後關閉,在workflow中保存
添加spark程序
剛剛修改了Workspace 這裏 Files和Jar/py name 可以直接使用相對路徑,(建議還是是使用絕對路徑,比較明瞭)
設置執行類和啓動參數
保存運行。成功。
3. 加入 Schedule 任務
在workflow中選擇Schedule
填寫參數並設置 執行時間
注意如果上面自己指定了 oozie.libpath ,這裏也要設置 oozie.libpath ,否則提示缺少jar包
所以上面如果我們自己設置Workspace目錄,並把依賴傳到lib目錄,這裏就不用設置了,他默認會去讀取
保存運行
時區問題參考:https://blog.csdn.net/zhangshenghang/article/details/84540403