赫拉(hera)分散式任務排程系統之版本(四)
阿新 • • 發佈:2019-01-09
文章目錄
赫拉
大資料平臺,隨著業務發展,每天承載著成千上萬的ETL任務排程,這些任務集中在hive,shell指令碼排程。怎麼樣讓大量的ETL任務準確的完成排程而不出現問題,甚至在任務排程執行中出現錯誤的情況下,任務能夠完成自我恢復甚至執行錯誤告警與完整的日誌查詢。hera任務排程系統就是在這種背景下衍生的一款分散式排程系統。隨著hera叢集動態擴充套件,可以承載成千上萬的任務排程。它是一款原生的分散式任務排程,可以快速的新增部署wokrer節點,動態擴充套件叢集規模。支援shell,hive,spark指令碼排程,可以動態的擴充套件支援python等伺服器端指令碼排程。
專案地址:[email protected]:scx_white/hera.git
版本介紹
在hera
系統中支援歷史版本的資料重跑。
每一個任務都會生成版本,版本時間根據cron
表示式來產生。其中版本在指令碼中沒有使用內建變數時無用。
版本號的生成規則為:yyyyMMddHHmm000000 + 任務ID號
12
位來識別的。
版本的使用
在hera中我們內建了一些時間變數。其原理根據velocity
模版進行變數替換。所有的時間變數都在HeraDateTool
類中,有需要自定義需求的可以自行增加。
比如我寫了一個指令碼,內容如下
點選手動執行,執行時選擇一個版本。
通過執行日誌資訊我們可以發現使用的版本為:201812290300000001
然後執行的時間為2019年1月4日
,指令碼輸出的時間是以指令碼時間版本時間為準的。通過選擇不同時間的版本,我們可以在跑資料時使用hera
內建時間變數,來進行拉取指定的時間的資料。
例子同上。
加入群聊
個人微信(失效加我拉你進去)