大巧不工,袋鼠雲正式開源巨量資料任務排程平臺 —— Taier(太阿)

2022-02-22 21:00:08

022年2月22日,歷經多年持續迭代和千萬週期範例並行排程的Taier(太阿)開源了。這是袋鼠雲開源專案的重要里程碑,代表著袋鼠雲技術研發團隊對開源的決心。袋鼠雲希望通過技術分享,幫助更多人探索巨量資料平臺的業務場景,同時也由衷歡迎更多開發者參與到社群中來。

緣起:太阿出鞘

Taier的命名,源自中國十大名劍太阿。

Taier Logo

太阿是春秋戰國時期楚國的鎮國至寶,由鑄劍名師歐冶子和干將聯手打造。相傳楚國在生死存亡之際,靠太阿劍氣擊敗晉國大軍,被世人譽為諸侯威武之劍,象徵了威武不屈、內心強大的實力,正如Taier強悍穩定的任務排程能力,每天可處理15w+超龐大任務體量,不但大大降低企業ETL的開發成本,還能有效保障巨量資料平臺的平穩執行,功能強大,一如太阿劍威力無窮。

亮劍:Taier誕生

Taier的誕生,與時代的發展息息相關。

如今,數位化轉型已成為全球浪潮,巨量資料平臺建設成為新時代必不可少的基礎設施。隨著數位化轉型的深入,很多企業在建設資料中臺過程中,將涉及大量資料採集、處理、計算等方面的工作,需求的不斷疊加,出現了單個系統難以滿足複雜業務的情況,迫切需要一種相容多個子系統互相共同作業的任務排程系統協調,正是基於這種背景,Taier分散式DAG任務排程系統應運而生。

Taier是一個開箱即用的分散式視覺化的DAG任務排程系統,技術開發人員可以在Taier 直接進行業務邏輯的開發,而不用關心任務錯綜複雜的依賴關係與底層的巨量資料平臺的架構實現,將工作的重心更多地聚焦在業務之中。

太阿Taier排程系統架構圖

Taier的 Logo設計理念圍繞系統本身開放包容、簡單易用的特性,在設計中融入了積木、劍、蜂巢等元素。主體Logo由四塊積木交疊而成,形若利劍,有組合,有分離,傳達開源項⽬開放包容的理念,同時也表現Taier採⽤分散式模式——具有很強的解耦性、擴充套件性。

Taier 的Logo創意闡釋

Logo底層採⽤六邊形蜂巢結構,六邊形蜂巢是大自然中最省勞動⼒、最省材料、最穩定的排列⽅式,其六條對稱軸可以經過各種旋轉⽽不改變形狀,選用六邊形作為Logo的邊框,意在傳達Taier降低開發成本、提⾼⼤資料平臺穩定性的特點。

亮點:Taier功能優勢

作為一個分散式視覺化的DAG任務排程系統,Taier脫胎於袋鼠雲的一站式巨量資料開發平臺——數棧DTinsight,技術實現來源於數棧分散式排程引擎DAGScheduleX,DAGScheduleX是數棧產品的重要基礎設施之一,負責巨量資料平臺所有任務範例的排程執行。Taier是DAGScheduleX的重要樞紐,負責排程日常龐大的任務體量,多年的持續迭代與沉澱,造就了Taier六大核心優勢:

一、超高的穩定性

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

高可用方式:Zookeeper

過載處理:分散式節點+ 兩級儲存策略 + 佇列機制。每個節點都可以處理任務排程與提交;任務多時會優先快取在記憶體佇列,超出可設定的佇列最大數量值後會全部落資料庫;任務處理以佇列方式消費,佇列非同步從資料庫獲取可執行範例

實戰檢驗:得到數百家企業客戶生產環境實戰檢驗

二、超強的易用性,一站式任務排程

支援巨量資料作業Spark、Flink、Hive、MR的排程

支援眾多的任務型別,目前支援Spark SQL、Flinkx;後續開源支援:SparkMR、PySpark、FlinkMR、Python、Shell、Jupyter、Tersorflow、Pytorch、HadoopMR、Kylin、Odps、SQL類任務(MySQL、PostgreSQL、Hive、Impala、Oracle、SQLServer、TiDB、greenplum、inceptor、kingbase、presto)

視覺化工作流設定:支援封裝工作流、支援單任務執行,不必封裝工作流、支援拖拽模式繪製DAG

DAG監控介面:運維中心、支援叢集資源檢視,瞭解當前叢集資源的剩餘情況、支援對排程佇列中的任務批次停止、任務狀態、任務型別、重試次數、任務執行機器、視覺化變數等關鍵資訊一目瞭然

排程時間設定:視覺化設定

多叢集連線:支援一套排程系統連線多套Hadoop叢集

三、超凡的相容性,支援多版本引擎

支援Spark 、Flink、Hive、MR等引擎的多個版本共存,例如可同時支援Flink1.10、Flink1.12(後續開源)

四、安全可靠,支援Kerberos

Spark、Flink、Hive

五、豐富的系統引數

支援3種時間基準,且可以靈活設定輸出格式

六、卓越的擴充套件性,支援多種方式擴容

設計之處就考慮分散式模式,目前支援整體Taier水平擴容方式;後續開源支援:Scheduler/Worker分離部署模式。

排程能力隨叢集線性增長

終端:Taier使用者介面

展望:未來迭代計劃

Taier排程平臺是資料平臺框架中的一個元件,可以滿足企業日常資料分析、處理、展示需要。未來隨著業務的接入和資料規模的增大,Taier將持續提升使用者體驗,計劃將優化:

任務型別:支援SparkMR、PySpark、FlinkMR、Python、Shell、Jupyter、Tersorflow、Pytorch、HadoopMR、Kylin、Odps、SQL(MySQL、PostgreSQL、Hive、Impala、Oracle、SQLServer、TiDB、greenplum、inceptor、kingbase、presto

排程方式:同時支援Yarn/K8s

計算引擎:同時支援Spark-2.1.x/2.4.x、Flink-1.10/1.12(與Flink後續版本)

部署方式:同時支援Scheduler/Worker整合與分離部署

功能支援:支援交易日曆、事件驅動

外部系統對接:支援Taier系統對接外部排程系統(AZKBAN、Control-M、DS排程)

Taier 使用了 Apache 的多個開源專案如Flink、Spark 作為計算元件實現資料同步和批次處理計算,得益於開源社群才有如今的Taier。正因為Taier 取之於社群, 所以袋鼠雲希望通過開源此項技術的方式,回饋社群,共同弘揚「Community Over Code「的Apache文化。未來,袋鼠雲仍將秉承相容幷包與開放多樣化的心態,將繼續推出Taier 後續版本,歡迎更多的公司和個人參與到開發者隊伍中來,讓Taier社群更加健壯、健康的發展,讓更多人享受開源帶來的技術革命!

展開閱讀全文