資料介紹
軟件簡(jiǎn)介
Big Whale 巨鯨任務(wù)調(diào)度平臺(tái)為美柚大數(shù)據(jù)研發(fā)的分布式計(jì)算任務(wù)調(diào)度系統(tǒng),提供 Spark、Flink 等批處理任務(wù)的 DAG 調(diào)度和流處理任務(wù)的運(yùn)行管理和狀態(tài)監(jiān)控,并具有Yarn應(yīng)用管理、重復(fù)應(yīng)用檢測(cè)、大內(nèi)存應(yīng)用檢測(cè)等功能。 服務(wù)基于 Spring Boot 2.0 開發(fā),打包后即可運(yùn)行。
概述
1.架構(gòu)圖

2.特性
- 基于SSH的腳本執(zhí)行機(jī)制,部署簡(jiǎn)單快捷,僅需單個(gè)服務(wù)
- 基于Yarn Rest Api的任務(wù)狀態(tài)同步機(jī)制,對(duì)Spark、Flink無(wú)版本限制
- 支持失敗重試
- 支持任務(wù)依賴
- 支持復(fù)雜任務(wù)編排(DAG)
- 支持流處理任務(wù)運(yùn)行管理和監(jiān)控
- 支持Yarn應(yīng)用管理
部署
1.準(zhǔn)備
- Java 1.8+
- Mysql 5.1.0+
- 下載項(xiàng)目或git clone項(xiàng)目
- 為解決 github README.md 圖片無(wú)法正常加載的問(wèn)題,請(qǐng)?jiān)趆osts文件中加入相關(guān)域名解析規(guī)則,參考:hosts
2.安裝
- 創(chuàng)建數(shù)據(jù)庫(kù):big-whale
- 運(yùn)行數(shù)據(jù)庫(kù)腳本:big-whale.sql
- 根據(jù)Spring Boot環(huán)境,配置相關(guān)數(shù)據(jù)庫(kù)賬號(hào)密碼,以及SMTP信息
-
配置:big-whale.properties
-
配置項(xiàng)說(shuō)明
- ssh.user: 擁有腳本執(zhí)行權(quán)限的ssh遠(yuǎn)程登錄用戶名(平臺(tái)會(huì)將該用戶作為統(tǒng)一的腳本執(zhí)行用戶)
- ssh.password: ssh遠(yuǎn)程登錄用戶密碼
- dingding.enabled: 是否開啟釘釘告警
- dingding.watcher-token: 釘釘公共群機(jī)器人Token
- yarn.app-memory-threshold: Yarn應(yīng)用內(nèi)存上限(單位:MB),-1禁用檢測(cè)
- yarn.app-white-list: Yarn應(yīng)用白名單列表(列表中的應(yīng)用申請(qǐng)的內(nèi)存超過(guò)上限,不會(huì)進(jìn)行告警)
-
配置項(xiàng)說(shuō)明
- 修改:$FLINK_HOME/bin/flink,參考:flink(因flink提交任務(wù)時(shí)只能讀取本地jar包,故需要在執(zhí)行提交命令時(shí)從hdfs上下載jar包并替換腳本中的jar包路徑參數(shù))
- 打包:mvn clean package
3.啟動(dòng)
- 檢查端口17070是否被占用,被占用的話,關(guān)閉占用的進(jìn)程或修改項(xiàng)目端口號(hào)配置重新打包
- 拷貝target目錄下的big-whale.jar,執(zhí)行命令:java -jar big-whale.jar
4.初始配置
-
打開:http://localhost:17070

- 輸入賬號(hào)admin,密碼admin
- 點(diǎn)擊:權(quán)限管理->用戶管理,修改當(dāng)前賬號(hào)的郵箱為合法且存在的郵箱地址,否則會(huì)導(dǎo)致郵件發(fā)送失敗
-
添加集群
-
集群管理->集群管理->新增

- “yarn管理地址”為Yarn ResourceManager的WEB UI地址
- “程序包存儲(chǔ)目錄”為程序包上傳至hdfs集群時(shí)的存儲(chǔ)路徑,如:/data/big-whale/storage
- “支持Flink任務(wù)代理用戶”“流處理任務(wù)黑名單”和“批處理任務(wù)黑名單”為內(nèi)部定制的任務(wù)分配規(guī)則,勿填
-
集群管理->集群管理->新增
-
添加集群用戶
-
集群管理->集群用戶->新增

- 該配置的語(yǔ)義為:平臺(tái)用戶在所選集群下可以使用的Yarn資源隊(duì)列(--queue)和代理用戶(--proxy-user)
-
集群管理->集群用戶->新增
-
添加代理
-
集群管理->代理管理->新增

- 可添加多個(gè)實(shí)例(僅支持IP地址,可指定端口號(hào),默認(rèn)為22),執(zhí)行腳本的時(shí)候會(huì)隨機(jī)選擇一個(gè)實(shí)例執(zhí)行,在實(shí)例不可達(dá)的情況下,會(huì)繼續(xù)隨機(jī)選擇下一個(gè)實(shí)例,在實(shí)例均不可達(dá)時(shí)執(zhí)行失敗
- 選擇集群后,會(huì)作為該集群下提交Spark或Flink任務(wù)的代理之一
-
集群管理->代理管理->新增
-
添加計(jì)算框架版本
-
集群管理->版本管理->新增

- 同一集群下不同版本的Spark或Flink任務(wù)的提交命令可能有所不同,如Spark 1.6.0版本的提交命令為spark-submit,Spark 2.1.0版本的提交命令為spark2-submit
-
集群管理->版本管理->新增
使用
1.離線調(diào)度
1.1 新增
- 目前支持“Shell”、“Spark Batch”和“Flink Batch”三種類型的批處理任務(wù)
-
通過(guò)拖拽左側(cè)工具欄相應(yīng)的批處理任務(wù)圖標(biāo),可添加相應(yīng)的DAG節(jié)點(diǎn)


-
支持時(shí)間參數(shù)
${now} ${now - 1d} ${now - 1h@yyyyMMddHHmmss}等(d天、h時(shí)、m分、s秒、@yyyyMMddHHmmss為格式化參數(shù)) - 非“Shell”類型的批處理任務(wù)應(yīng)上傳與之處理類型相對(duì)應(yīng)的程序包,此處為Spark批處理任務(wù)打成的jar包
- “資源選項(xiàng)”可不填
- 代碼有兩種編輯模式,“可視化視圖”和“代碼視圖”,可互相切換
- 點(diǎn)擊“測(cè)試”可測(cè)試當(dāng)前節(jié)點(diǎn)是否正確配置并可以正常運(yùn)行
- 為防止平臺(tái)線程被大量占用,平臺(tái)提交Saprk或Flink任務(wù)的時(shí)候都會(huì)強(qiáng)制以“后臺(tái)”的方式執(zhí)行,對(duì)應(yīng)spark配置:--conf spark.yarn.submit.waitAppCompletion=false,flink配置:-d,但是基于后臺(tái)“作業(yè)狀態(tài)更新任務(wù)”的回調(diào),在實(shí)現(xiàn)DAG執(zhí)行引擎時(shí)可以確保當(dāng)前節(jié)點(diǎn)所提交的任務(wù)運(yùn)行完成后再執(zhí)行下一個(gè)節(jié)點(diǎn)的任務(wù)
-
支持時(shí)間參數(shù)
- DAG節(jié)點(diǎn)支持失敗重試
-
將節(jié)點(diǎn)按照一定的順序連接起來(lái)可以構(gòu)建一個(gè)完整的DAG

-
DAG構(gòu)建完成后,點(diǎn)擊“保存”,完成調(diào)度設(shè)置

1.2 操作
- 打開離線調(diào)度列表
-
?

-
點(diǎn)擊左側(cè)操作欄“調(diào)度實(shí)例”可查看調(diào)度實(shí)例列表、運(yùn)行狀態(tài)和節(jié)點(diǎn)啟動(dòng)日志

- 點(diǎn)擊左側(cè)操作欄“手動(dòng)執(zhí)行”可觸發(fā)調(diào)度執(zhí)行
2.實(shí)時(shí)任務(wù)
2.1 新增
-
目前支持“Spark Stream”和“Flink Stream”兩種類型的流處理任務(wù)

-
啟用監(jiān)控可以對(duì)任務(wù)進(jìn)行狀態(tài)監(jiān)控,包括異常重啟、批次積壓告警等

2.2 操作
- 打開實(shí)時(shí)任務(wù)列表
-
?

- 點(diǎn)擊左側(cè)操作欄“日志”可查看任務(wù)啟動(dòng)日志
- 點(diǎn)擊左側(cè)操作欄“執(zhí)行”可觸發(fā)任務(wù)啟動(dòng)
3.任務(wù)告警
- 正確配置郵件或釘釘告警后在任務(wù)運(yùn)行異常時(shí)會(huì)發(fā)送相應(yīng)的告警郵件或通知,以便及時(shí)進(jìn)行相應(yīng)的處理
<巨鯨任務(wù)告警> 代理: agent1 類型: 腳本執(zhí)行失敗 用戶: admin 任務(wù): 調(diào)度示例1 - shell_test 時(shí)間: 2021-03-05 15:18:23
<巨鯨任務(wù)告警> 集群: 集群1 類型: spark離線任務(wù)異常(FAILED) 用戶: admin 任務(wù): 調(diào)度示例1 - spark_test 時(shí)間: 2021-03-05 15:28:33
<巨鯨任務(wù)告警> 集群: 集群1 類型: spark實(shí)時(shí)任務(wù)批次積壓,已重啟 用戶: admin 任務(wù): sparkstream_test 時(shí)間: 2021-03-05 15:30:41
- 除上述告警信息外還有其他告警信息此處不一一列舉
Change log
- v1.1開始支持DAG
- v1.2開始支持DAG節(jié)點(diǎn)失敗重試
- v1.3調(diào)度引擎進(jìn)行重構(gòu)升級(jí),不支持從舊版本升級(jí)上來(lái),原有舊版本的任務(wù)請(qǐng)手動(dòng)進(jìn)行遷移,離線調(diào)度移除“Python”類型腳本支持
- 分布式電源對(duì)配電系統(tǒng)的影響分析
- 基于Simulink的電子對(duì)抗分布式仿真系統(tǒng) 26次下載
- 基于KingSCADA的分布式運(yùn)動(dòng)控制監(jiān)測(cè)系統(tǒng) 10次下載
- MapReduce框架下分布式編碼計(jì)算容錯(cuò)算法 2次下載
- 一種分布式網(wǎng)絡(luò)掃描架構(gòu)和任務(wù)調(diào)度算法 19次下載
- 如何通過(guò)YARN設(shè)計(jì)分布式資源動(dòng)態(tài)調(diào)度協(xié)同分配系統(tǒng) 12次下載
- 分布式智能電網(wǎng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2次下載
- 基于MapReduce架構(gòu)的分布式母線保護(hù) 1次下載
- 電力系統(tǒng)分布式經(jīng)濟(jì)調(diào)度 10次下載
- 分布式系統(tǒng)進(jìn)程調(diào)度方法研究
- 三層分布式計(jì)算網(wǎng)格任務(wù)調(diào)度系統(tǒng) 25次下載
- 分布式計(jì)算的新聞自動(dòng)編目系統(tǒng)
- 基于Multi-Agent的分布式測(cè)控系統(tǒng)任務(wù)調(diào)度算法
- 基于實(shí)數(shù)編碼免疫算法的分布式任務(wù)調(diào)度
- 分布式多媒體計(jì)算機(jī)系統(tǒng)教程 0次下載
- 分布式SCADA系統(tǒng)的特點(diǎn)的組成 581次閱讀
- 任務(wù)調(diào)度系統(tǒng)設(shè)計(jì)的核心邏輯 935次閱讀
- Java手寫分布式鎖的實(shí)現(xiàn) 612次閱讀
- tldb提供分布式鎖使用方法 923次閱讀
- 如何使用分布式存儲(chǔ)系統(tǒng)促進(jìn)AI模型訓(xùn)練 608次閱讀
- 利用NI VeriStand 2010實(shí)現(xiàn)分布式同步系統(tǒng)的設(shè)計(jì) 3437次閱讀
- 基于Jini互聯(lián)技術(shù)實(shí)現(xiàn)分布式嵌入式系統(tǒng)的設(shè)計(jì) 3200次閱讀
- 詳談分布式系統(tǒng)的定義及屬性 3897次閱讀
- 基于TMS320F2812 DSP實(shí)現(xiàn)三協(xié)同分布式控制系統(tǒng)的設(shè)計(jì) 1145次閱讀
- 分布式光纖傳感器原理_分布式光纖傳感器的應(yīng)用 8837次閱讀
- 分布式控制系統(tǒng)的介紹 5532次閱讀
- 存儲(chǔ)分布式系統(tǒng)中如何從CAP轉(zhuǎn)到PACELC 2780次閱讀
- 基于 FPGA 客戶端的分布式計(jì)算網(wǎng)絡(luò)設(shè)計(jì) 1301次閱讀
- 深度解讀分布式存儲(chǔ)技術(shù)之分布式剪枝系統(tǒng) 1861次閱讀
- 基于CAN總線的分布式網(wǎng)架健康狀態(tài)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì) 1027次閱讀
下載排行
本周
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 2世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 3電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 4PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說(shuō)明
- 1.24 MB | 3次下載 | 免費(fèi)
- 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
- 1.27 MB | 1次下載 | 4 積分
- 7HC88L051F4低功耗芯片規(guī)格書
- 4.76 MB | 1次下載 | 免費(fèi)
- 8CIU32D655x5數(shù)據(jù)手冊(cè)
- 2.14 MB | 1次下載 | 免費(fèi)
本月
- 1常用電子元器件使用手冊(cè)
- 2.40 MB | 52次下載 | 免費(fèi)
- 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
- 2.27 MB | 33次下載 | 10 積分
- 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 4世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 5電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 6USB拓展塢PCB圖資料
- 0.57 MB | 11次下載 | 免費(fèi)
- 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
- 4.51 MB | 9次下載 | 免費(fèi)
- 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
- 0.70 MB | 9次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論