一文讀懂:開源大資料排程系統Taier1.2版本新增的「工作流」到底是什麼?
一、什麼是工作流?
在闡述什麼是工作流之前,先說一下工作流和普通任務的區別,在於依賴檢視。
普通任務本身他只會有自己的 dag 圖,依賴檢視是無邊界的,不可控的,而工作流則是把整個工作流都展示出來,是有邊界的,可控的,這是工作流的優勢。下面為大家介紹工作流的相關功能:
01 工作流 — 功能介紹
● 虛擬節點
虛擬節點,它是不產生任何資料的空跑節點(即排程到該節點時,系統直接返回成功,不會真正執行、不會佔用資源或阻塞下游節點執行),比如說任務並行執行,那麼就會用到虛擬節點。
● 週期生成
指排程系統按照排程配置自動定時執行的任務。
● 補資料執行
當業務變更,可以使用補資料功能。如修改了某個任務的程式碼,可將本月的資料按照新的程式碼重新跑一遍,立即生成所需資料。
● 排程屬性
工作流中的子任務依賴於父任務的週期排程屬性,父任務修改後,子任務同步修改,以工作流的週期排程屬性作為各個子節點的週期排程時間。
● 工作流所在目錄
修改工作流目錄同步修改工作流下的子任務目錄。
02 工作流 — 依賴成環
具體實現:
任務完成依賴的關係,key 為當前節點,value 為該節點的所有父節點 Map <long list> nodeMap。
遍歷 nodeMap,以此遍歷單集合中的每一個節點。每遍歷一個新節點,就從頭檢查新節點之前的所有節點,用新節點和此節點之前所有節點依次做比較。如果發現新節點和之前的某個節點相同,則說明該節點被遍歷過兩次,連結串列有環。如果之前的所有節點中不存在與新節點相同的節點,就繼續遍歷下一個新節點,繼續重複剛才的操作。
二、Taier 工作流週期例項執行
瞭解完工作流的功能介紹後,我們來為大家分享 Taier 工作流週期例項執行:
01 Taier— 週期例項生成
Taier 主節點在啟動的時候,會開啟一個定時器,定時器會不停的去判斷當日的例項是否已經生成。如果沒有生成,就會觸發事件給 CycleJobBuilder 生成例項,再透過 JobDependency 封裝例項之間的依賴關係。
● CycleJobBuilder
用於生成周期例項。掃描資料庫任務表並且獲取 zk 上所有的 Taier 節點,把封裝後的例項分配到每一臺 Taier 節點上。
● JobDependency
用於生成 job 之間的依賴關係。
02 Taier— 排程流程
在啟動 Taier 服務時,會啟動配置的所有排程器,並且開始掃描例項,並提交。
03 Taier— 工作流任務狀態修改邏輯
任務提交攔截器處理:
1、工作流下無子任務更新為完成狀態
2、工作流下任務都是完成狀態,任務提交佇列可以移除
3、同時更新工作流 engine_job 狀態,工作流只有四種狀態,成功 / 失敗 / 取消 / 提交中:
(1) 所有子任務狀態為執行成功時,工作流狀態更新為成功
(2) 工作流狀態根據子任務的執行狀態來確定,失敗狀態存在優先順序:執行失敗 > 提交失敗 > 上游失敗
a. 子任務存在執行失敗時,工作流狀態更新為執行失敗
b. 子任務不存在執行失敗時,存在提交失敗,工作流狀態更新為提交失敗
c. 子任務不存在執行失敗時,不存在提交失敗,存在上游失敗時,工作流狀態更新為上游失敗
(3) 子任務存在取消狀態時,工作流狀態更新為取消
(4) 若子任務中同時存在執行失敗或取消狀態,工作流狀態更新為失敗狀態
(5) 其他工作流更新為執行中狀態
三、Taier1.3 即將上線功能
新增功能
・ChunJun 的嚮導模式資料來源增強 hive1、hive2、hive3、sparkThrift、oracle、mysql、postgresql、sqlserver 、es7
・flink on standalone、python.shell、spark jar 、pyspark 支援
・自定義任務型別 web 介面配置抽取
・windows 開發環境適配
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995740/viewspace-2918838/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開源公開課丨大資料排程系統 Taier 任務排程介紹大資料AI
- 當我們在聊「開源大資料排程系統Taier」的資料開發功能時,到底在討論什麼?大資料AI
- 開源大資料排程系統 Taier 技術公開課 ——Taier 資料開發介紹大資料AI
- 一文讀懂支付系統
- 山石巖讀丨一文讀懂區塊鏈安全:區塊鏈到底是什麼?區塊鏈
- Android系統“資源排程框架”Android框架
- 一文讀懂教育直播系統開發模式模式
- 一文讀懂大資料實時計算大資料
- 開源專案丨Taier1.2版本釋出,新增工作流、租戶繫結簡化等多項功能AI
- 豈止於大,一文讀懂大資料及其在推薦系統的應用大資料
- 一文讀懂資料平臺建設的演進歷程
- OPPO大資料離線任務排程系統OFLOW大資料
- 一文讀懂鴻蒙系統與安卓系統的區別鴻蒙安卓
- 基於開源大資料排程系統Taier的Web前端架構選型及技術實踐大資料AIWeb前端架構
- 開源大資料檔案系統大資料
- 一文看懂雲端計算和大資料到底是什麼!大資料
- 一文讀懂mysql許可權系統MySql
- 【獨家】一文讀懂大資料計算框架與平臺大資料框架
- 一文讀懂智慧客服:發展歷程、系統搭建、市場推廣
- 五分鐘讀懂區塊鏈到底是個什麼鏈?區塊鏈
- 什麼是大資料系統架構大資料架構
- 什麼是大資料?大資料開發是做什麼的?大資料
- 一文讀懂資料庫發展史資料庫
- 一文讀懂如何實施資料治理?
- 大資料到底是什麼鬼大資料
- 一文了解用於ML/AI工作流的開源編排器FlyteAI
- 一文讀懂SpringMVC中的資料繫結SpringMVC
- 大資料到底是幹什麼用的?大資料
- 大資料是什麼?一文帶你瞭解大資料的概念!大資料
- 誕生至今,大資料的真正含義到底是什麼?大資料
- 一文讀懂什麼是Java中的自動拆裝箱Java
- 乾貨!收藏!一文講清楚資料治理到底是什麼?
- 開源分散式任務排程系統就選:DolphinScheduler分散式
- Azkaban工作流排程
- 一文讀懂資料平臺的發展歷史
- 50PB的大資料到底是什麼概念?–資料資訊圖大資料
- OPPO大資料計算叢集資源排程架構演進大資料架構
- 深入工作流排程的核心