<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Big Whale分布式計算任務調度系統(tǒng)

          聯(lián)合創(chuàng)作 · 2023-09-29 14:32

          Big Whale 巨鯨任務調度平臺為美柚大數(shù)據(jù)研發(fā)的分布式計算任務調度系統(tǒng),提供 Spark、Flink 等批處理任務的 DAG 調度和流處理任務的運行管理和狀態(tài)監(jiān)控,并具有Yarn應用管理、重復應用檢測、大內存應用檢測等功能。 服務基于 Spring Boot 2.0 開發(fā),打包后即可運行。

          概述

          1.架構圖

          image

          2.特性

          • 基于SSH的腳本執(zhí)行機制,部署簡單快捷,僅需單個服務
          • 基于Yarn Rest Api的任務狀態(tài)同步機制,對Spark、Flink無版本限制
          • 支持失敗重試
          • 支持任務依賴
          • 支持復雜任務編排(DAG)
          • 支持流處理任務運行管理和監(jiān)控
          • 支持Yarn應用管理

          部署

          1.準備

          • Java 1.8+
          • Mysql 5.1.0+
          • 下載項目或git clone項目
          • 為解決 github README.md 圖片無法正常加載的問題,請在hosts文件中加入相關域名解析規(guī)則,參考:hosts

          2.安裝

          • 創(chuàng)建數(shù)據(jù)庫:big-whale
          • 運行數(shù)據(jù)庫腳本:big-whale.sql
          • 根據(jù)Spring Boot環(huán)境,配置相關數(shù)據(jù)庫賬號密碼,以及SMTP信息
          • 配置:big-whale.properties
            • 配置項說明
              • ssh.user: 擁有腳本執(zhí)行權限的ssh遠程登錄用戶名(平臺會將該用戶作為統(tǒng)一的腳本執(zhí)行用戶)
              • ssh.password: ssh遠程登錄用戶密碼
              • dingding.enabled: 是否開啟釘釘告警
              • dingding.watcher-token: 釘釘公共群機器人Token
              • yarn.app-memory-threshold: Yarn應用內存上限(單位:MB),-1禁用檢測
              • yarn.app-white-list: Yarn應用白名單列表(列表中的應用申請的內存超過上限,不會進行告警)
          • 修改:$FLINK_HOME/bin/flink,參考:flink(因flink提交任務時只能讀取本地jar包,故需要在執(zhí)行提交命令時從hdfs上下載jar包并替換腳本中的jar包路徑參數(shù))
          • 打包:mvn clean package

          3.啟動

          • 檢查端口17070是否被占用,被占用的話,關閉占用的進程或修改項目端口號配置重新打包
          • 拷貝target目錄下的big-whale.jar,執(zhí)行命令:java -jar big-whale.jar

          4.初始配置

          • 打開:http://localhost:17070
            image
          • 輸入賬號admin,密碼admin
          • 點擊:權限管理->用戶管理,修改當前賬號的郵箱為合法且存在的郵箱地址,否則會導致郵件發(fā)送失敗
          • 添加集群
            • 集群管理->集群管理->新增
              image
            • “yarn管理地址”為Yarn ResourceManager的WEB UI地址
            • “程序包存儲目錄”為程序包上傳至hdfs集群時的存儲路徑,如:/data/big-whale/storage
            • “支持Flink任務代理用戶”“流處理任務黑名單”和“批處理任務黑名單”為內部定制的任務分配規(guī)則,勿填
          • 添加集群用戶
            • 集群管理->集群用戶->新增
              image
            • 該配置的語義為:平臺用戶在所選集群下可以使用的Yarn資源隊列(--queue)和代理用戶(--proxy-user)
          • 添加代理
            • 集群管理->代理管理->新增
              image
            • 可添加多個實例(僅支持IP地址,可指定端口號,默認為22),執(zhí)行腳本的時候會隨機選擇一個實例執(zhí)行,在實例不可達的情況下,會繼續(xù)隨機選擇下一個實例,在實例均不可達時執(zhí)行失敗
            • 選擇集群后,會作為該集群下提交Spark或Flink任務的代理之一
          • 添加計算框架版本
            • 集群管理->版本管理->新增
              image
            • 同一集群下不同版本的Spark或Flink任務的提交命令可能有所不同,如Spark 1.6.0版本的提交命令為spark-submit,Spark 2.1.0版本的提交命令為spark2-submit

          使用

          1.離線調度

          1.1 新增

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

          1.2 操作

          • 打開離線調度列表
          •  image
          • 點擊左側操作欄“調度實例”可查看調度實例列表、運行狀態(tài)和節(jié)點啟動日志
            image
          • 點擊左側操作欄“手動執(zhí)行”可觸發(fā)調度執(zhí)行

          2.實時任務

          2.1 新增

          • 目前支持“Spark Stream”和“Flink Stream”兩種類型的流處理任務
            image
          • 啟用監(jiān)控可以對任務進行狀態(tài)監(jiān)控,包括異常重啟、批次積壓告警等
            image

          2.2 操作

          • 打開實時任務列表
          •  image
          • 點擊左側操作欄“日志”可查看任務啟動日志
          • 點擊左側操作欄“執(zhí)行”可觸發(fā)任務啟動

          3.任務告警

          • 正確配置郵件或釘釘告警后在任務運行異常時會發(fā)送相應的告警郵件或通知,以便及時進行相應的處理
          <巨鯨任務告警>
          代理: agent1
          類型: 腳本執(zhí)行失敗
          用戶: admin
          任務: 調度示例1 - shell_test
          時間: 2021-03-05 15:18:23
          
          <巨鯨任務告警>
          集群: 集群1
          類型: spark離線任務異常(FAILED)
          用戶: admin
          任務: 調度示例1 - spark_test
          時間: 2021-03-05 15:28:33
          
          <巨鯨任務告警>
          集群: 集群1
          類型: spark實時任務批次積壓,已重啟
          用戶: admin
          任務: sparkstream_test
          時間: 2021-03-05 15:30:41
          
          • 除上述告警信息外還有其他告警信息此處不一一列舉

          Change log

          • v1.1開始支持DAG
          • v1.2開始支持DAG節(jié)點失敗重試
          • v1.3調度引擎進行重構升級,不支持從舊版本升級上來,原有舊版本的任務請手動進行遷移,離線調度移除“Python”類型腳本支持
          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爆操熟妇在线视频 | 亚洲精品男人天堂 | 日本色情A片网址 | 良家 露脸 后入 | 欧美日韩A片 |