<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>

          Taier分布式可視化 DAG 任務調(diào)度系統(tǒng)

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

          Taier是袋鼠云數(shù)棧大數(shù)據(jù)家族的開源項目之一 ,它是一個分布式可視化的DAG任務調(diào)度系統(tǒng),旨在降低ETL開發(fā)成本、提高大數(shù)據(jù)平臺穩(wěn)定性,讓大數(shù)據(jù)開發(fā)人員可以在Taier直接進行業(yè)務邏輯的開發(fā),而不用關心任務錯綜復雜的依賴關系與底層的大數(shù)據(jù)平臺的架構(gòu)實現(xiàn),將工作的重心更多地聚焦在業(yè)務之中。

          一、架構(gòu)設計和功能詳解

          在架構(gòu)設計與功能特點上,Taier整體架構(gòu)是使用插件式的開發(fā)模式,在任務開發(fā)下面有調(diào)度模塊和各項組件,也包括數(shù)棧開源家族的Chunjun等等。

          (一)Taier功能特點

          Taier的功能特點有下面幾個比較重要的方面:

          1.任務類型Spark SQL、數(shù)據(jù)同步(流計算任務);

          2.控制臺:包括隊列管理、資源管理、多集群管理等;

          3.運維中心:比如任務管理、周期調(diào)度、補數(shù)據(jù)等;

          4.插件化開發(fā):具體包括 taier-plugin、、DatasourceX、Chunjun等幾個插件。

          (二)Taier功能特征

          隨著不斷更新完善,現(xiàn)在的Taier已經(jīng)具有以下的幾種特性:

          1、拓展性

          • 單點故障:去中心化的分布式模式

          • 高可用方式:Zookeeper

          • 過載處理∶分布式節(jié)點+兩級存儲策略+隊列機制。每個節(jié)點都可以處理任務調(diào)度與提交;任務多時會優(yōu)先緩存在內(nèi)存隊列,超出可配置的隊列最大數(shù)量值后會全部落數(shù)據(jù)庫;任務處理以隊列方式消費,隊列異步從數(shù)據(jù)庫獲取可執(zhí)行實例

          • 實戰(zhàn)檢驗:得到數(shù)百家企業(yè)客戶生產(chǎn)環(huán)境實戰(zhàn)檢驗

          2、易用性

          • 支持大數(shù)據(jù)作業(yè)Spark、Flink的調(diào)度;

          • 支持眾多的任務類型,目前支持Spark SQL、Chunjun

          • 可視化工作流配置︰支持封裝工作流、支持單任務運行,不必封裝工作流、支持拖拽模式繪制;

          • DAG監(jiān)控界面:運維中心、支持集群資源查看,了解當前集群資源的剩余情況、支持對調(diào)度隊列中的任務批量停止、任務狀態(tài)、任務類型、重試次數(shù)、任務運行機器、可視化變量等關鍵信息一目了然;

          • 調(diào)度時間配置:可視化配置;

          • 多集群連接:支持一套調(diào)度系統(tǒng)連接多套Hadoop集群。

          3、多版本引擎

          • 支持Spark 、Flink等引擎的多個版本共存,例如可同時支持Flink1.10、Flink1.12(后續(xù)開源)

          • Kerberos支持Spark、Flink

          • 豐富,支持3種時間基準,且可以靈活設置輸出格式。

          4、拓展性

          • 設計之處就考慮分布式模式,目前支持整體Taier 水平擴容方式;調(diào)度能力也隨集群線性增長。

           

          二、Taier重要概念

          下面從原理和操作層面給大家進一步介紹Taier,還有一些具體概念的解釋。

          (一)任務與實例

          方便起見,數(shù)棧在Taier中提出“任務”和“實例”兩個概念,例如數(shù)據(jù)開發(fā)的數(shù)據(jù)同步這項工作稱之為“任務”,而已經(jīng)提交并且配置了周期屬性的任就稱之為“實例”。

          (二)實例具體操作

          在Taier中,實例有這幾種構(gòu)建的方式:

          1.基于Zookeeper選舉Master節(jié)點參與Job 實例構(gòu)建,T+1構(gòu)建JobGraph

          2. JobGraph構(gòu)建前check &clean DirtyData

          3.依據(jù)Task、TaskTask的數(shù)據(jù)(JobGraph)生成Job .JobJob實例數(shù)據(jù)

          4.Master節(jié)點控制實例數(shù)據(jù)的負載均衡持久化入數(shù)據(jù)庫

          構(gòu)建完畢后,實例處理的幾種方式如下圖所示:

          其中:

          1.三種任務類型:周期任務、補數(shù)據(jù)任務、重跑任務,統(tǒng)一調(diào)度方式

          2. Job 優(yōu)先入隊列(1),隊列容量不足入DB (2)

          3.當隊列容量空余時,異步線程從DB加載數(shù)據(jù)入隊列(3)

          4. Job出隊列后進行任務提交

           

          處理完成后,實例提交我們也做了思考,具體設計:

          1.內(nèi)存優(yōu)先級隊列,控制Job有序執(zhí)行

          2.多線程并發(fā)提交(可配置)

          3. Job 執(zhí)行超時判斷(可配置)

          4. Job資源不足/失敗重試進入延遲隊列(可配置)﹔避免長時間占用提交權(quán)

           

          Taier 的實例狀態(tài)大家主要應該關注標志停止的幾個,具體有下面幾種:

          1. WaitEngine:內(nèi)存隊列中的Job、內(nèi)存容量不足存儲在DB中的Job(默認500 )

          2. Lacking:資源不足暫時等待的Job(默認2min)

          3. Restarting:失敗重試的Job(默認2min )

          4. Finshed、Failed、Canceled、Killed:結(jié)束狀態(tài)

          Taier的整個控制臺設計分為公共組件、調(diào)度組件、存儲組件和計劃組件。通過一個租戶ID,拿到這個集群下common, YARN-conf等的四個配置信息,組成包含一個任務插件所有信息的pluginlnfo。將它解析之后,一些資源初始化上傳,以便我們緩存對應的客戶端。 

          Taier Client Plugin這里,要快速開發(fā)一個插件要注意以下幾點:

          • 一種任務類型對應一個插件,即一個jar包

          • 自定義類加載器(Classloader) 破壞雙親委派優(yōu)先加載( Child-First)插件

          • 插件實現(xiàn)IClient接口方法

          • SPI: 在classpath 下的META-INF/services/目錄下,創(chuàng)建以接口IClient 全限定名命名的文件,內(nèi)容是上一步中實現(xiàn)類的全限定名

           

           

           

          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          編輯 分享
          舉報
          <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>
                  俺去了俺也去超碰在线 | 久操B | 一级黄色绿相 | 国内精品久久久久久久久 | 欧洲成人无码视频 |