Big Whale(巨鯨)任務調度系統為美柚大數據研發的分散式計算任務調度系統,提供Spark、Flink等批次任務的DAG執行調度和流處理任務的狀態監測調度,並具有重複應用檢測、大記憶體應用檢測等功能。 本服務基於Spring Boot 2.0開發,打包後即可運作。
環境準備
Java 1.8+
Mysql 5.1.0+
安裝
1、建立資料庫:big-whale
2、運行資料庫腳本:big-whale.sql
3.根據Spring Boot環境,配置相關資料庫帳號密碼,以及SMTP訊息
4、配置:big-whale.properties
配置項說明
ssh.user: 擁有腳本執行權限的ssh遠端登入使用者名稱(平台會將該使用者作為統一的腳本執行使用者)
ssh.password: ssh遠端登入使用者密碼
dingding.enabled: 是否開啟釘釘告警
dingding.watcher-token: 釘釘公共群機器人Token
yarn.app-memory-threshold: Yarn應用記憶體上限(單位:MB),-1禁用檢測
yarn.app-white-list: Yarn應用白名單清單(清單中的應用程式申請的記憶體超過上限,不會進行警告)
5.修改:$FLINK_HOME/bin/flink,參考:flink(因flink提交任務時只能讀取本地jar包,故需要在執行提交命令時從hdfs上下載jar包並替換腳本中的jar包路徑參數)
6、打包:mvn clean package
啟動
1.檢查埠17070是否被佔用,被佔用的話,關閉佔用的進程或修改項目埠號碼配置重新打包
2、拷貝target目錄下的big-whale.jar,執行指令:java -jar big-whale.jar
初始配置
1.開啟:http://localhost:17070
2、輸入帳號admin,密碼admin
3.點選:權限管理->使用者管理,修改目前帳號的信箱為合法且存在的信箱位址,否則會導致郵件傳送失敗
4、新增集群
集群管理->集群管理->新增
「yarn管理位址」為Yarn ResourceManager的WEB UI位址
「程式包儲存目錄」為程式包上傳至hdfs叢集時的儲存路徑,如:/data/big-whale/storage
「支援Flink任務代理用戶」「流處理任務黑名單」和「批次任務黑名單」為內部定制的任務分配規則,勿填
5、新增代理
叢集管理->代理管理->新增
可新增多個實例(僅支援IP位址,可指定連接埠號,預設為22),執行腳本的時候會隨機選擇一個實例執行,在實例不可達的情況下,會繼續隨機選擇下一個實例,在實例均不可達時執行失敗
選擇叢集後,會作為該叢集下提交Spark或Flink任務的代理程式之一
6.新增叢集用戶
集群管理->集群用戶->新增
此配置的語意為:平台使用者在所選叢集下可以使用的Yarn資源佇列(--queue)和代理使用者(--proxy-user)
7.新增計算框架
叢集管理->管理->新增
在同一叢集下不同的Spark或Flink任務的提交指令可能有所不同,例如Spark 1.6.0的提交指令為spark-submit,Spark 2.1.0的提交指令為spark2-submit