1. 程式人生 > >赫拉(hera)分散式任務排程系統之版本(四)

赫拉(hera)分散式任務排程系統之版本(四)

文章目錄

赫拉

大資料平臺,隨著業務發展,每天承載著成千上萬的ETL任務排程,這些任務集中在hive,shell指令碼排程。怎麼樣讓大量的ETL任務準確的完成排程而不出現問題,甚至在任務排程執行中出現錯誤的情況下,任務能夠完成自我恢復甚至執行錯誤告警與完整的日誌查詢。hera任務排程系統就是在這種背景下衍生的一款分散式排程系統。隨著hera叢集動態擴充套件,可以承載成千上萬的任務排程。它是一款原生的分散式任務排程,可以快速的新增部署wokrer節點,動態擴充套件叢集規模。支援shell,hive,spark指令碼排程,可以動態的擴充套件支援python等伺服器端指令碼排程。

專案地址:[email protected]:scx_white/hera.git

赫拉(hera)分散式任務排程系統之架構,基本功能(一)

赫拉(hera)分散式任務排程系統之專案啟動(二)

赫拉(hera)分散式任務排程系統之開發中心(三)

赫拉(hera)分散式任務排程系統之版本(四)

赫拉(hera)分散式任務排程系統之Q&A(五)

版本介紹

hera系統中支援歷史版本的資料重跑。

每一個任務都會生成版本,版本時間根據cron表示式來產生。其中版本在指令碼中沒有使用內建變數時無用。

版本號的生成規則為:yyyyMMddHHmm000000 + 任務ID號

,其實日期的替換就是根據版本的前12位來識別的。

版本的使用

在hera中我們內建了一些時間變數。其原理根據velocity模版進行變數替換。所有的時間變數都在HeraDateTool類中,有需要自定義需求的可以自行增加。

比如我寫了一個指令碼,內容如下

在這裡插入圖片描述

點選手動執行,執行時選擇一個版本。
在這裡插入圖片描述

通過執行日誌資訊我們可以發現使用的版本為:201812290300000001 然後執行的時間為2019年1月4日,指令碼輸出的時間是以指令碼時間版本時間為準的。通過選擇不同時間的版本,我們可以在跑資料時使用hera內建時間變數,來進行拉取指定的時間的資料。
在這裡插入圖片描述

例子同上。

加入群聊

在這裡插入圖片描述

個人微信(失效加我拉你進去)
在這裡插入圖片描述