專案介紹
Big Whale(巨鯨),為美柚大資料研發的大資料任務排程平臺,提供Spark、Flink等離線任務的排程(支援任務間的依賴排程)以及實時任務的監控,並具有批次積壓告警、任務異常重啟、重複應用監測、大記憶體應用監測等功能。 服務基於Spring Boot 2.0開發,部署方便,功能強大,打包後即可執行。
準備Java 1.8+Mysql 5.1.0+安裝建立資料庫:big-whale執行資料庫指令碼:big-whale.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.jar初始配置開啟:http://localhost:17070
同一叢集下不同版本的Spark或Flink提交任務的命令可能有所不同,如Spark:1.6.0版本的提交命令為spark-submit,2.1.0版本的提交命令為spark2-submit
使用新建指令碼指令碼管理->新增型別”有shell、spark實時、spark離線、flink實時、flink離線,示例為:spark實時因為當前使用者為超級管理員,可為所有使用者建立指令碼,故需要選擇“使用者”“程式包”應上傳與指令碼型別相應的Spark流式任務打成的jar包“資源選項”可不填程式碼有兩種編輯模式,“視覺化檢視”和“程式碼檢視”,可互相切換
執行成功後在詳情中便可檢視到Yarn應用詳情的連線(提交Yarn任務的日誌級別請設定為:INFO)
執行超時或失敗會有相應的郵件告警
實時監控對於型別為“spark實時”和“flink實時”的指令碼,可以通過新增此功能來實時監控任務的執行情況任務執行異常時可進行相應的處理,如批次積壓告警、任務失敗退出重啟等
離線排程對於型別為“shell”、“spark離線”和“flink離線”的指令碼,可通過新增此功能實現DAG任務排程(v1.1開始支援,需要從v1.0升級的,請查閱SchedulingFieldGenerateForV1_1Test.java)