此專案為美柚大資料研發的大資料任務排程平臺,提供Spark、Flink等離線任務的排程以及實時任務的監控,並具有批次積壓報警、任務異常重啟、重複應用監測、大記憶體應用監測等功能。
Big Whale - 任務排程平臺Big Whale(巨鯨),為美柚大資料研發的大資料任務排程平臺,提供Spark、Flink等離線任務的排程以及實時任務的監控,並具有批次積壓報警、任務異常重啟、重複應用監測、大記憶體應用監測等功能。 服務基於Spring Boot 2.0開發,部署方便,功能強大,打包後即可執行。
部署1.準備
Java 1.8+Mysql 5.1.0+下載專案或git clone專案為解決 github README.md 圖片無法正常載入的問題,請在hosts檔案中加入相關域名解析規則2.安裝
建立資料庫:big-whale執行資料庫指令碼:big_whale_tables_mysql.sql根據Spring Boot環境,配置相關資料庫賬號密碼,以及SMTP資訊配置:big-whale.properties配置項說明ssh.user: 擁有指令碼執行許可權的ssh使用者(平臺會使用該使用者作為統一的指令碼執行使用者)ssh.password: 擁有指令碼執行許可權的ssh使用者密碼dingding.enabled: 是否開啟釘釘告警dingding.watcher-token: 釘釘公共群機器人Tokenyarn.app-memory-threshold: Yarn應用記憶體上限,-1禁用監測yarn.app-white-list: 白名單列表(列表中的應用申請的記憶體超過上限,不會進行報警)修改:$FLINK_HOME/bin/flink(flink提交任務時,只能讀取本地jar包,故需要在執行flink提交命令時從hdfs上下載jar包並替換指令碼的jar包路徑引數,參考:flink)服務打包:mvn clean package3.啟動
檢查埠17070是否被佔用,被佔用的話,關閉佔用的程序或修改專案埠號配置重新打包拷貝target下的big-whale.jar,執行命令:java -jar big-whale.jar4.初始配置同一叢集下不同版本的Spark或Flink提交任務的命令可能有所不同,如Spark:1.6.0版本的提交命令為spark-submit,2.1.0版本的提交命令為spark2-submit使用1.新建指令碼指令碼管理->新增“型別”有shell、spark實時、spark離線、flink實時、flink離線,示例為:spark實時因為當前使用者為超級管理員,可為所有使用者建立指令碼,故需要選擇“使用者”“程式包”應上傳與指令碼型別相應的Spark流式任務打成的jar包“資源選項”可不填程式碼有兩種編輯模式,“視覺化檢視”和“程式碼檢視”,可互相切換
執行成功後在詳情中便可檢視到Yarn應用詳情的連結(提交Yarn任務的日誌級別請設定為:INFO)
3.實時監控對於型別為“spark實時”和“flink實時”的指令碼,可以通過新增此功能來實時監控任務的執行情況4.離線排程對於型別為“shell”、“spark離線”和“flink離線”的指令碼,可通過新增此功能實現定時執行,通過新增子指令碼的形式可實現序列任務排程說明:平臺提交saprk或flink任務的時候預設都會以“後臺”的方式執行,對應spark配置:--conf spark.yarn.submit.waitAppCompletion=false,flink配置:-d,但是基於後臺任務監測的實現,通過回撥實現序列任務排程的時候會等待真正執行的任務完成後再執行下一指令碼