分散式可視化 DAG 任務調度系統 Taier 的整體流程分析

来源:https://www.cnblogs.com/DTinsight/archive/2023/08/17/17636857.html
-Advertisement-
Play Games

Taier 作為[袋鼠雲](https://www.dtstack.com/?src=szsm)的[開源項目](https://www.dtstack.com/?src=szsm)之一,是一個[分散式可視化的 DAG 任務調度系統](https://www.dtstack.com/?src=szsm ...


Taier 作為袋鼠雲開源項目之一,是一個分散式可視化的 DAG 任務調度系統。旨在降低 ETL 開發成本,提高大數據平臺穩定性,讓大數據開發人員可以在 Taier 直接進行業務邏輯的開發,而不用關心任務錯綜複雜的依賴關係與底層的大數據平臺的架構實現,將工作的重心更多地聚焦在業務之中。

本文將從 Taier 的流程簡述、結構分析以及可擴展點三個方面對 Taier 的整體流程進行分析探討。

Taier 流程簡述

Taier 主從劃分

Taier 是一個單獨的應用,進程無主從劃分,多實例運行時通過 ZK 實現主從劃分。基於 LeaderLatch 進行實現,啟動時搶到鎖的節點即為主(Master),沒有搶到鎖的即為從( Worker),會出現一主多從的情況。

如果其他的 Worker 在 ZK 中監聽到 Master 已經掛掉,那麼 Worker 會再次進行鎖的爭奪,搶到鎖的成為主。

在 Taier 中,作為主的主要職責包括周期實例生成、實例預分發、Worker 節點任務容災、實例提交等,作為從則主要負責實例提交即可。

Taier 周期實例(T+1)

周期實例是 Taier 的專屬名詞,指的是任務按照配置的調度時間運行一次即為一個實例,現在周期實例的機製為 T+1 的方式。

今日會預生成明天所有任務對應的周期實例,即今日的周期實例由昨天生成。Taier 預設22:00生成第二天周期實例,如果在22:00之後再將任務提交到調度系統,這個任務則不會進行周期實例生成的動作。

配置項為 job.graph.build.cron=22:00:00,時間可以自己調整。

file

Taier 任務提交

Taier 任務提交的具體流程圖如下:

file

任務流程提交前置判斷主要分為兩個部分,一為任務上下游的依賴校驗,會判斷周期實例的上游是否已經運行完成,如果上游運行失敗,那麼這個任務就是不准備提交的;二為資源校驗,因為任務都是運行在集群上,非常占資源,所以會進行提交前的校驗,判斷當前集群的資源是否充足,如果資源不足,會進行延遲提交的動作。

Taier 任務提交的具體代碼如下:

file

Taier 結構分析

Taier 的結構主要分為 UI、應用層和插件三個部分,在插件中,Taier worker-plugin 和 Taier datasource-plugin 又是其中最為重要的兩個插件。

file

Taier worker-plugin

Taier worker-plugin 的主要用途包括:

· 任務資源判斷

· 任務提交

· 任務狀態獲取

· 任務日誌獲取

· Kill 任務

具體代碼如下:

file
file

相關的類包括:

· com.dtstack.taier.common.client.ClientFactory

· com.dtstack.taier.common.client.ClientProxy

· com.dtstack.taier.common.client.ClientCache

Taier datasource-plugin

Taier datasource-plugin 的主要用途包括:

· 連通性檢查

· 執行 SQL

· 獲取 Schema 信息

· 獲取 Table 列表

· 獲取表元數據

· 下載數據

· 下載日誌

具體代碼如下:

file
file
file
file

Taier 任務提交插件

參考代碼:

com.dtstack.taier.scheduler.jobdealer.JobSubmitDealer#submitJob

file

Taier 可擴展點

Taier 目前就核心功能進行了開源,其他功能開發者可以自行進行擴展,包括:

· 任務立即生成實例

· ChunJun 嚮導模式擴展

· DataX 支持嚮導模式配置

· 數據源插件版本擴展

· 計算引擎新增

· Hadoop 多集群版本支持

· 實例分發策略增加

視頻課程&PPT獲取

視頻課程:

https://www.bilibili.com/video/BV1wP411z7rf/?spm_id_from=333.999.0.0

課件獲取:

https://www.dtstack.com/resources/1047

《數棧產品白皮書》:https://www.dtstack.com/resources/1004?src=szsm

《數據治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm

想瞭解或咨詢更多有關袋鼠雲大數據產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky

同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 哈嘍大家好,我是鹹魚 之前鹹魚在《[Linux 網路收包流程](https://mp.weixin.qq.com/s?__biz=MzkzNzI1MzE2Mw==&mid=2247486122&idx=1&sn=df659a7458028772c9595e98d5cefbc1&chksm=c2930 ...
  • # 一.安裝環境 ## 1.操作系統 **CentOS-7.6-x86_64-DVD-1810.iso** **Root用戶!!!** ## 2.虛擬機設置 ![image](https://img2023.cnblogs.com/blog/2840133/202308/2840133-202308 ...
  • 流量限制模下載和安裝 安裝完成後,可以在IIS管理工具里點擊“Bit Rate Throttling”節點。 根據你的文件及類型配置流量限制規則: 以下白皮書是更多的一些幫助和內容: Bit Rate Throttling Module Setup Bit Rate Throttling Confi ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230816163336851-1607680900.png) # 1. 資料庫 ## 1.1. 一組相關信息 ## 1.2. 電話簿肯定是最為普及且常用的資料庫 # 2. 非 ...
  • # mysql代理、中間件技術 ## 代理簡介 **名詞** DB proxy 資料庫中間件 **功能** 讀寫分離:讀寫分離導致處理速度迅速,一般情況下是主伺服器進行寫操作而從伺服器進行讀操作 負載均衡 支持數據的分片自動路由和聚合 **本文主要圍繞Mycat實現、且在完成MM-SS集群的條件下* ...
  • ![file](https://img2023.cnblogs.com/other/2685289/202308/2685289-20230817174410327-1799604230.png) Apache DolphinScheduler 3.2.0 版本已經呼之欲出,8 月 中下旬,這個大版 ...
  • NineData提供了高效、穩定的MySQL大表遷移能力,解決了傳統遷移方案的問題。通過智能分片、行級併發和動態攢批等核心技術,NineData保證了遷移性能。同時,NineData具備完善的容災能力,提高了大表遷移的成功率。通過數據和結構的對比功能,保障了數據的一致性。使用NineData進行遷移... ...
  • 本文分享自華為雲社區《【手把手帶你玩轉HetuEngine】(一)HetuEngine快速上手》,作者:HetuEngine九級代言。 HetuEngine是什麼 HetuEngine是華為推出的高性能互動式SQL分析及數據虛擬化引擎。與大數據生態無縫融合,實現海量數據秒級互動式查詢;支持跨源跨域統 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...