在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

京東百萬級調度系統Buffalo架構解密

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-24 14:44 ? 次閱讀

一、調度系統簡介

Buffalo調度是一款京東自主研發的分布式DAG作業調度系統。為京東的數據開發工程師算法工程師、數據分析師等用戶提供了離線作業的編排&調試、監控運維、DAG調度等系統能力,致力于打造行業領先的穩定高效、產品簡潔高體驗、任務監控全面、資源容器化、系統能力開放化的ETL調度系統。

在京東調度系統核心面臨的挑戰有以下幾個:

1.業務復雜帶來的依賴關系復雜:復雜的數據鏈路,使得部分任務有數百、甚至上千個上下游,層級多達數十層。跨天依賴、數據回刷、月度匯總等業務場景,需任務間依賴存在大小周期依賴、跨天依賴等復雜場景,任務依賴關系數據構成一個龐大且復雜的有向無環圖。

2.業務體量大且穩定性&性能要求高:目前平臺有數十萬任務,百萬+依賴關系,日均百萬+調度頻次,不僅關系復雜、執行量大,且系統的任何細微異常,都可能導致數據鏈路異常,核心數據受損,這對調度系統的穩定性和性能帶來了不小挑戰。

3.數據加工場景復雜需支撐豐富調度能力:支持集團多個BG業務,業務場景多樣,涉及數據采集、數據計算、數據推送、數據轉換等多種任務類型、多種執行方式、多種觸發規則,以及控制節點、任務間的數據傳遞、數據補錄場景等,對系統功能的豐富度和靈活度提出新要求。

二、核心技術方案

為支撐靈活的業務加工和工作流編排場景,快速的業務發展帶來的任務量增長,以及保障整個系統的穩定性,我們從易用性、穩定性、以及高性能等方面做了很多的思考和優化,下面我將著重從這三個方面詳細介紹。

1. 實體和編排調度模型

a) 雙層實體模型

wKgaomagotGAbof7AAFMjtOysok699.png


采用主流的雙層實體模型,雙層實體模型中,包含兩個核心概念:

?Action(環節):環節是最小粒度的執行單位,攜帶執行相關的信息,如腳本、參數、環境等。

?Task(任務):任務是由一個或多個環節+觸發規則構成的DAG,Task和Task之間也可以相互依賴,在外層構成一個DAG,實現雙層調度。

相比單層實體模型,編排能力更強,有更好的靈活性,同時對于單個業務的整合打包和管理也更友好。

b) 基于實例的調度

wKgZomagotKASOJqAAIw9FcOBI0477.png


任務定義是任務配置的載體,無狀態,不可執行,任務當到達運行周期時,會產生相應周期的任務實例(產生實例的過程叫“實例化”),實例化時會根據任務的配置信息,包括:環節、上游依賴、數據依賴、運行周期等,生成當前周期實例,可理解為任務的一個快照,任務實例是真正可執行、并具有狀態的對象。

基于實例的調度模式,其優點在于:

?周期穩定:任務的每個周期都會有實例,不會出現周期缺失的情況,且每個周期的實例可獨立操作

?依賴明確:任務某個周期的實例,其對上游任務實例的依賴,或者數據依賴是明確的、可預期的,同時對某個周期的數據可從整個鏈路上快速追溯,并在產生問題是可從鏈路層面快速修復。

c) 分類分級調度能力

平臺中的任務不通業務,重要性存在一定差異,為提升核心任務的保障能力,平臺提供任務分類分級管理,和基于分級的調度能力,在客戶端資源較為緊張時,會優先保障重要業務。同時任務等級信息會透傳到底層集群,在底層計算集群層面也增加相應基于分類和等級的保障策略,保障核心業務的穩定性。

2. 高可用架構

wKgaomagotOAXW4JAAEL8IJ7AtI325.png


buffalo整體有分三層,每一層都具備高可用架構,使得整體具備高可用和容災能力

?a) Manager管理層:

?主要提供產品化管理能力,包括任務的創建、任務管理、任務運維等,管理端無狀態,可橫向擴展,負載對外提供服務

?b) 高可用Scheduler:

?也叫NameNode是Buffalo核心調度引擎,負責任務實例的周期生成,以及基于DAG的雙層任務實例的調度、客戶端資源的調度(物理資源、彈性資源)、任務狀態的處理等。

?整體采用多活+主備高可用架構,多個scheduler會通過數據分片負載處理任務,同時對于任務狀態消息進行冪等處理,其中資源調度模塊采用主備模式,以便支撐靈活和高效的資源調度能力。當一個節點故障時,其他節點會監測到節點下線,并自動觸發接管邏輯,將異常節點任務接管處理,保障故障節點上的任務執行不受影響。

?c) 容錯執行層:

?執行層的核心職責是負責任務啟動執行,并監聽任務執行結果、采集任務日志、上報任務狀態,執行層支持物理機和基于k8s的容器化資源兩種模式。

?物理機:部署worker(也稱TaskNode)長進程,任務以獨立進程方式運行,多個worker構成節點組對(虛擬節點)外服務,避免單點故障問題。同時worker本身支持消息重傳、cgroup資源隔離等高可用特性。

?k8s彈性資源:與原生k8s對接,任務以短周期pod方式執行,任務結束時pod銷毀,天然具備高可用特性,同時具備更精細化的資源管理、差異化執行環境的動態構建能力。

3. 高性能

前面提到調度系統中隨著任務量的增長,業務復雜度的提升,需要調度執行的DAG實例梳理,以及DAG的復雜度都會不斷提升,buffalo主要從以下幾個方面來做到高容量、低延遲的編排和調度。

1) 水平擴展

如上高可用架構部分介紹,調度引擎采用多活架構,可水平擴展,不同服務之間通過數據哈希分片,將任務負載分布到多臺服務進行調度,同時各服務通過執行批次和狀態進行冪等處理,保障任務執行的唯一性。

2) 事件驅動

wKgZomagotSATdZBAAFH1Vj3FEE462.png


a. 定時輪詢(如左圖)

傳統的任務執行方式大多采用定時輪詢的方式,這種方式需要定時查詢所有待執行的任務實例,然后逐一校驗任務實例的依賴條件是否滿足(如任務依賴、數據依賴、并發限制等),這種方式在面臨大數據量任務時,有幾個核心問題:

?遍歷耗時:系統中可能有非常多的任務待執行(有些滿足條件、有些不滿足條件),這樣每次獲取的任務列表會非常長(可能數十萬或百萬),這樣遍歷一遍非常耗時

?大量無用計算:在這些獲取的任務列表中,每個任務都需要進行多種條件校驗,且只有少數任務是滿足執行條件,絕大部分的校驗是無用校驗

b. 基于事件驅動(如右圖)

相比定時輪詢,事件驅動不會采用定時拉取、全量校驗的方式,而是在任務所依賴條件的狀態發生變更時,才會基于事件做出相應的條件計算和校驗動作,這樣可以有效避免定時輪詢面臨的兩個核心問題。同時針對不同的事件類型,可以分別進行異步并行處理,有效提升整體的處理性能。

3) 內存調度

wKgaomagotWANEf7AACmlSsKHWg031.png


前面提到Buffalo具備在物理機集群和k8s集群上啟動任務執行的能力,所以需要具備這兩種資源的管理和資源調度能力,資源調度的性能也是影響任務分發時效的關鍵部分。

調度引擎namenode采用的是多活的高可用架構,如果資源調度部分也采用該架構(如左圖),那么涉及到同一資源的并發訪問和修改的問題,進而引入分布式鎖和外部存儲,這樣整體的性能很難達到理想的目標。

因此,我們在namenode多活架構的基礎上,將資源調度部分做了一個主備架構的處理(如右圖),會從多個namenode里選擇一個作為主資源調度器,其他作為熱備,所有namenode的任務資源請求都由主節點進行處理,這樣主節點在內存中保存了所有的資源信息,資源調度過程在內存中就可進行,避免了分布式鎖和對外部存儲的依賴,性能有大幅提升。

4) 冷熱數據分離

wKgaomagotiAVJ3_AAEBplax6MU778.png


當系統中任務量較大,任務執行產生的實例數據會快速增長,當前buffalo每日的實例數據增量接近百萬,隨著任務量的增長還會持續增長,如果沒有適當的方案來處理,數據庫很難支撐如此快速的數據增長。

調度系統中的任務有個明顯特征 -定時,就是任務會定時執行,執行完成后的實例,除人為干預外其狀態不會再自動發生變更,這部分數據一般只會做查詢,所以這部分數據可以做獨立存儲。我們將狀態還會發生變更或頻繁操作的數據稱作熱數據,將這些已經執行結束且基本只有查詢需求的數據稱作冷數據,并將冷數據單獨存儲。

當冷熱數據分離后,有三個核心問題需要解決:

1)數據結轉

任務實例執行完成,處于結束狀態的實例都可以被結轉,目前采用定時結轉的策略。為避免冷數據單表數據量過大,結轉規則可以按照季度、月或則更小周期進行拆分存儲。

2) 數據定位

當數據結轉到冷數據表后,這些實例的狀態不會發生變更,單可能還會被未執行的實例所依賴,用戶也可能會對這些實例做檢索操作,所以這些實例需要能從冷數據表中快速被定位。

?索引表:數據結轉到冷數據表時,會根據冷數據表的分區粒度,在索引表記錄各冷分區表中的數據范圍,如計劃運行時間在2023-01-01 至 2023-03-31的數據存儲在2023Q1分區表,這樣在定位時可以圈定數據范圍,避免全量掃描。

?數據定位:因實例數據是有周期性的,有非常強的時間特性,所以可以結合任務實例的計劃運行時間,和索引表的數據范圍,快速定位任務某個范圍的實例所在的分區。

3)冷數據操作

冷數據被操作的幾率比較低,但也存在操作的可能性,比如歷史實例的重跑、強制成功等操作。為了保持調度引擎架構的簡單性,所有相關的任務執行的處理,都是基于當前表(熱表),所以為了能保障被結轉的冷數據和熱數據一樣支持所有操作,冷數據被操作時會從冷數據表恢復至熱數據表,從而實現與熱數據相同的效果。

4、開放能力

開放API:通過Http協議進行開放,支持任務配置管理、任務實例操作、狀態查詢、日志查詢等能力,通過藏經閣進行開放來服務業務

開放事件:基于JDQ異步消息的方式將任務狀態、實例狀態進行開放,聯動業務個性化處理。狀態發生變更及時同步,確保業務觸達的及時性

三、未來規劃

Buffalo調度系統仍在持續的優化和迭代升級,不僅提供更好的用戶體驗、更極致的性能,也包括容器化能力、插件化擴展能力、開放能力、精細化的資源管理能力等,希望大家提出更好的想法和建議,一起打造穩定、高效、易用的調度平臺。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 調度系統
    +關注

    關注

    0

    文章

    43

    瀏覽量

    9489
  • 架構
    +關注

    關注

    1

    文章

    514

    瀏覽量

    25470
  • DAG
    DAG
    +關注

    關注

    0

    文章

    17

    瀏覽量

    8155
收藏 人收藏

    評論

    相關推薦

    電力系統中的電功率調度方法

    電力系統是現代社會的基礎設施,它為工業、商業和居民生活提供必需的電能。電功率調度作為電力系統運行管理的核心,其目的是在滿足電力需求的同時,確保電網的穩定性和經濟性。 1. 電功率調度
    的頭像 發表于 12-09 11:02 ?212次閱讀

    京東物流-智能運輸調度系統方案 榮獲IF、紅點國際設計大獎

    得到智能物流運輸調度系統概念方案,經過投稿先后獲得設計領域國際影響力較高的IF和紅點大獎,設計質量得到國際認可。 ? ? 《智能物流運輸調度系統》項目是
    的頭像 發表于 11-06 11:55 ?277次閱讀
    <b class='flag-5'>京東</b>物流-智能運輸<b class='flag-5'>調度</b><b class='flag-5'>系統</b>方案 榮獲IF、紅點國際設計大獎

    京東APP百億商品與車關系數據檢索實踐

    作者:京東零售 張強 導讀 本文主要講解了京東百億商品車型適配數據存儲結構設計以及怎樣實現適配接口的高性能查詢。通過京東百億級數據緩存架構
    的頭像 發表于 10-18 14:14 ?732次閱讀
    <b class='flag-5'>京東</b>APP百億<b class='flag-5'>級</b>商品與車關系數據檢索實踐

    京東廣告投放平臺整潔架構演進之路

    作者:京東零售 趙嘉鐸 前言 從去年開始京東廣告投放系統做了一次以領域驅動設計為思想內核的架構升級,在深入理解DDD思想的同時,我們基于廣告投放業務的本質特征大膽地融入了自己的理解和改
    的頭像 發表于 09-18 10:26 ?848次閱讀
    <b class='flag-5'>京東</b>廣告投放平臺整潔<b class='flag-5'>架構</b>演進之路

    京東小程序數據中心架構設計與最佳實踐

    一、京東小程序是什么 京東小程序平臺能夠提供開放、安全的產品,成為品牌開發者鏈接京東內部核心產品的橋梁,致力于服務每一個信任我們的外部開發者,為不同開發能力的品牌商家提供合適的服務和產品,讓技術開放
    的頭像 發表于 08-08 11:20 ?362次閱讀
    <b class='flag-5'>京東</b>小程序數據中心<b class='flag-5'>架構</b>設計與最佳實踐

    大模型再加速,保障京東618又便宜又好

    基礎設施持續降本,混合多云操作系統云艦、分布式存儲平臺云海、軟硬一體虛擬化引擎京剛全面升級,實現綜合成本降低28%。京東云自主研發的分布式存儲平臺云海,可以做到千萬IOPS,延遲低至百微秒,通過存算分離技術
    的頭像 發表于 07-17 16:33 ?177次閱讀

    MES系統的功能、架構及應用價值

    萬界星空科技MES系統的功能、架構及應用價值 ?MES系統生產過程控制的主要方面涵蓋了生產計劃與控制、生產調度與排程、數據采集與監控、質量控制與管理、物料管理與控制以及設備管理與維護等
    的頭像 發表于 07-02 13:29 ?452次閱讀
    MES<b class='flag-5'>系統</b>的功能、<b class='flag-5'>架構</b>及應用價值

    車輛調度系統

    【銘跡創新】車輛調度系統分為隧道內和隧道外,隧道內應用UWB精確定位、RFID等技術,對隧道內施工車輛進行定位及區分行車道,綜合應用紅綠燈,LED屏幕、廣播等技術對隧道內車輛進行有效的施工調度。并可
    的頭像 發表于 05-31 15:59 ?500次閱讀
    車輛<b class='flag-5'>調度</b><b class='flag-5'>系統</b>

    安全指揮調度系統的場景應用有哪些?

    由于天氣以及設施設備眾多的影響,火災、交通事故等頻發,須采取措施予以有效防范和應對。為提高市場安全管理效能、優化質量、順應數字化轉型的宏觀政策趨勢等實際需求,古河云科技安全指揮調度系統應運而生
    的頭像 發表于 05-16 17:21 ?415次閱讀
    安全指揮<b class='flag-5'>調度</b><b class='flag-5'>系統</b>的場景應用有哪些?

    創建了兩個task如果一個優先高 一個優先級低,高優先的那個一直在做,什么時候會調度到低優先的呢?

    創建了兩個task如果一個優先高一個優先級低, 我看到任務的函數都是用死循環做的,那個高優先的那個一直在做,什么時候會調度到低優先的呢?
    發表于 05-13 07:13

    智慧園區:構建安全調度和預警管理系統

    備可視化和態勢感知則是實現這一目標的關鍵。 安全調度是智慧園區的核心要素之一。在智慧園區中,有眾多設備和系統需要集成和協同工作,如安防系統、消防系統、交通管理
    的頭像 發表于 05-06 16:40 ?529次閱讀
    智慧園區:構建安全<b class='flag-5'>調度</b>和預警管理<b class='flag-5'>系統</b>

    寧德時代、比亞迪正向新能源車細分領域探索,推進百萬車型電動化

    寧德時代和比亞迪正默契地向新能源車細分領域探索,越野、超跑等百萬車型的高端市場逐漸成為他們提高市占率的新“戰場”。
    的頭像 發表于 04-19 10:39 ?981次閱讀

    嵌入式實時操作系統優先搶占式調度機制解析

    當搶占發生時,任務即使沒有完成也會被迫放棄處理器,此時任務并沒有被掛起,而是會返回就緒隊列。任務在隊列中的位置是由優先決定的,它會在隊列中等待到下一次被調度
    的頭像 發表于 04-05 05:22 ?2815次閱讀
    嵌入式實時操作<b class='flag-5'>系統</b>優先<b class='flag-5'>級</b>搶占式<b class='flag-5'>調度</b>機制解析

    京東方在ISE 2024展會上首發全球技術及產品

    封裝技術,兼具極高能效和百萬超高對比度,具備110%NTSC超廣色域,既美觀又環保,成為全球綠色發展的新楷模。
    的頭像 發表于 01-31 10:08 ?803次閱讀

    OPPO:我們不生產芯片,但潮汐架構值得關注

    潮汐架構還支持芯片內的場景算力和功耗分析模型,實現基于單場景的動態算力和功耗評估和分析。通過精準地動態調度GPU的算力,潮汐架構提供了出色的顯示時延控制,為用戶帶來持續流暢的體驗。
    的頭像 發表于 01-10 17:21 ?1386次閱讀
    主站蜘蛛池模板: 亚洲免费视频网址| 午夜爱爱免费视频| 九色九色九色在线综合888| 美女被日出白浆| 欧美亚洲另类在线观看| 欧美日韩一区二区三区毛片| 淫香色香| 色国产在线视频一区| 亚洲国产精品综合久久2007 | 色视频免费观看高清完整| 99久久精品费精品国产一区二区| 天堂a免费视频在线观看| 美女黄18| 亚洲第一在线视频| 国产夜夜操| 美女扒开尿口给男的桶个爽| 四虎影院最新网址| 狠狠做深爱婷婷久久一区| 五月天婷婷在线观看视频| 1024国产手机视频基地| 一级做a爱片就在线看| 国产乱人视频免费播放| 天天操天天射天天插| 91大神精品视频| 五月天丁香婷| 国产视频二区| 九色愉拍自拍| 性欧美video视频另类| 韩国电影天堂网| 欧美视频图片| 精品成人| 久久伊人精品青青草原高清| 天天上天天干| 亚洲综合色色图| 日韩大尺度视频| 99色视频在线| 男操女免费视频| 色偷偷男人天堂| 伊人福利网| 444kk免费| 日本国产视频|