如何在AWS上構建Apache DolphinScheduler

海豚调度發表於2024-07-19

引言

隨著雲端計算技術的發展,Amazon Web Services (AWS) 作為一個開放的平臺,一直在幫助開發者更好的在雲上構建和使用開源軟體,同時也與開源社群緊密合作,推動開源專案的發展。

本文主要探討2024年值得關注的一些開源軟體及其在AWS上的應用情況,希望能夠給大家參考使用!

2024年資料開源軟體的趨勢

這張圖是根據海外的資料工程師總結的資料開源軟體landscape,我們可以觀察到一些關鍵的趨勢:

file

資料儲存與管理

  • 國內軟體的崛起:越來越多的中國開源軟體在資料儲存領域崛起,例如Pingcap、OceanBase和ShardingSphere。這些專案不僅由中國的社群主導,也得到了背後商業公司的大力支援。

  • 儲存系統:開源軟體在資料儲存或資料庫系統方面依舊是討論的熱點,表明儲存解決方案的重要性在不斷增加。

資料湖與資料處理

  • 資料湖技術:資料湖的構建和管理是近年來廣泛討論的主題,顯示出企業對於整合不同來源資料的高需求。

DataOps

  • 資料排程:傳統工具如Airflow和Azkaban以及新興的Apache DolphinScheduler,都在資料工作流和DataOps平臺領域中被廣泛使用。特別是Apache DolphinScheduler,近年來受到了開發者和企業的廣泛關注。

  • 資料整合工具:以 Apache SeaTunnel 等為代表的工具在資料處理和資料接入方面扮演著重要角色,幫助企業有效地管理和轉換資料。

作為一個開放的雲平臺,AWS不僅提供技術支援,還積極與全球社群進行深度合作,幫助開發者和企業在雲上構建和擴充套件他們的開源專案。

接下來我們總結一下開源軟體為什麼這麼重要?是因為它們不僅提供了靈活性和創新的加速,而且還幫助企業最佳化成本並提高產品的健壯性。

開源軟體的四大優勢

靈活性和可定製性

開源軟體的一個主要優點是其靈活性和高度的可定製性。因為原始碼直接掌握在開發者或客戶手中,使用者可以根據自己企業的特定需求來修改和最佳化軟體,使其更加符合自己的業務場景。

加速創新

從流式資料處理到資料倉儲和湖倉一體化,再到DataOps和人工智慧,許多創新技術都是首先在開源社群中提出並發展起來的。關注開源軟體,就是緊跟創新的步伐。

成本最佳化

無論是傳統IDC機房的客戶還是在雲上有較大規模的客戶,他們都關注如何最佳化成本。開源軟體提供了一種降低商業軟體成本、最佳化資源使用的有效途徑,幫助企業減輕經濟負擔。

社群裡邊有一句名言“社群重於程式碼”,一個開源專案的的成功不僅僅是程式碼的產出,而是整個社群生態的繁榮,開源軟體通常擁有活躍的社群支援,程式碼和功能不斷迭代和更新。像Apache DolphinScheduler這樣的專案,其成為Apache基金會頂級專案證明了其在程式碼質量、功能成熟度和社群活躍度等多個維度的高標準。社群的活躍不僅僅體現在程式碼產出上,更重要的是社群的建設和生態的完善。

我們剛才講到幫助我們的開發者在雲上去構建開源軟體,那AWS能提供給開發者什麼樣的內容,幫助開發者做哪些東西?

資料分析服務

資料接入和處理

首先我們可以看一下下面這張圖,這張圖是亞馬遜雲科技資料分析的服務的一個整體介紹,這裡邊會去按照像剛才的開源專案的一些分類,就是我們把從資料接入、資料處理、資料湖再到資料分析,還有一些結合 AI 模型 learning 的一些服務,做了一個分類。

file

AWS為資料接入和處理提供了多種服務:

  • 實時處理:利用完全託管的Flink服務,即Amazon Kinesis,為實時資料流提供強大支援。

  • 批處理和離線處理:透過Data Firehouse等服務支援批次離線資料處理,這些服務的底層技術部分源自開源社群。

資料湖和資料分析

AWS不僅支援資料儲存和管理,還提供了強大的資料分析工具:

  • Amazon Glue:作為一個完整的託管ETL服務,Glue支援資料準備和載入工作,使得資料分析工作變得更加高效。

  • Amazon EMR:提供了一個可擴充套件的Apache Hadoop框架來分析大規模資料集。

DolphinScheduler的整合

為了滿足更廣泛的客戶需求,在資料解決方案中引入了Apache DolphinScheduler::

  • 排程和工作流管理:DolphinScheduler與AWS服務如Amazon Kinesis和Amazon EMR整合,為開發者提供了強大的資料排程能力。

  • 定製化任務排程:開發者可以透過DolphinScheduler定製EMR作業的引數,使任務排程更加靈活和高效。

當然我們透過連結社群的反饋,不斷調整其服務以更好地服務於使用者。

例如,基於使用者反饋,AWS持續最佳化DolphinScheduler的整合,比如說現在已經整合了EMR,在 DolphinScheduler 的一個Task怎麼去排程?EMR 的裡面的一些引數能不能定製化,或者是做引數傳遞,或者是有一些更好地去更或者更方便的形式用 DolphinScheduler 去很好地去排程EMR提供更靈活的任務排程選項。

file
其實大部分使用者都是基於開源軟體,然後做了很多的二次開發,然後幫助客戶更快地去實現他們的業務價值,AWS透過與開源軟體的深度結合,開發了多種服務和解決方案以滿足不同客戶的需求:

  • 資料接入與處理:利用如Amazon Kinesis和Data Firehouse等服務,AWS結合開源專案如Apache Flink,提供實時與批次資料處理能力。

  • 資料儲存最佳化:透過開源軟體如ClickHouse、Apache Hudi和Apache Iceberg等,這些軟體能夠直接利用AWS的物件儲存服務S3,為資料湖等應用提供支援。

儲存服務的雲原生最佳化

AWS不僅在功能上進行最佳化,還透過雲原生技術確儲存儲服務的高效與成本效益:

  • 物件儲存S3:作為業界標準,S3為大量開源軟體提供了可靠的底層儲存支援。

  • 彈性塊儲存EBS:EBS支援高效能的伺服器掛載,適用於需要高吞吐量和低延遲的應用場景。

高效的成本管理

  • 成本最佳化:AWS透過提供高效能的儲存服務如新一代EBS,幫助客戶降低儲存成本。

  • 原生備份服務:AWS的備份服務為資料提供了額外的安全保障,同時最佳化了資料恢復的成本和時間。

AWS負載均衡服務

AWS的負載均衡服務提供以下關鍵功能:

  • 多協議支援:支援多種協議,確保不同場景下的負載均衡需求得到滿足。

  • 基於流量的收費模式:此服務基於流量收費,為開源專案提供成本優勢,特別是在流量波動大的應用場景下。

  • 加密協議支援:原生支援加密協議,增強了資料傳輸的安全性。

彈性和可擴充套件性

透過AWS負載均衡,開源軟體能夠更好地應對訪問量的波動,自動調整資源以保持高效能和穩定性。

Serverless的優勢

對於依賴資料庫的開源排程工具(如DolphinScheduler),選擇合適的資料庫配置是一個挑戰。AWS的Serverless資料庫服務提供了靈活的解決方案:

  • 自動化的資源管理:Serverless架構允許資料庫自動根據負載調整計算資源,無需人工干預。

  • 彈性擴縮容:支援快速擴容和縮容,響應時間可以達到秒級,非常適合需求波動大的場景。

  • 計算單元的粒度:最小計算單元為0.5 ACU(含2GB記憶體),允許精細控制資源使用,最佳化成本。

場景應用

在高峰期,如夜間資料處理作業增多時,Serverless資料庫能夠自動增加資源,確保資料庫效能滿足需求。這種模式為開發者節省了顯著的資源預算,並簡化了資料庫的管理工作。

我們希望透過利用AWS的負載均衡和Serverless資料庫服務,開源軟體專案可以獲得更高的彈性、安全性和成本效率。

容器服務

容器技術已成為支援分散式系統的關鍵技術,海豚排程恰恰是分散式架構,AWS的Elastic Kubernetes Service (EKS) 提供了一個完全託管的Kubernetes服務,幫助開發者輕鬆部署和管理容器化應用。

AWS EKS的核心優勢

AWS EKS允許使用者在幾分鐘內部署一個完全相容Kubernetes的叢集,極大地簡化了容器叢集的設定和管理過程。

file

EKS保證與開源Kubernetes社群的100%相容性,確保任何標準的Kubernetes應用都可以無縫遷移至AWS。

EKS整合了多種AWS服務,包括但不限於AWS的負載均衡和自動擴縮容服務,這些服務增強了開源軟體的效能和可觀測性。

Data On EKS(DoEKS)解決方案

DoEKS是一個由AWS架構師團隊開發的開源專案,它旨在提供一個一鍵部署解決方案,使開發者能夠快速在EKS上部署流行的開源軟體,如Spark和Flink。

功能與優勢

  • 一鍵部署:使用者可以透過執行一個指令碼快速啟動一個完整的開源軟體叢集。

  • 降低技術門檻:DoEKS專案簡化了傳統的開源軟體部署流程,從而讓開發者可以避免複雜的安裝和配置步驟。

應用場景無論是AI模型學習、資料分析還是大資料處理,DoEKS都提供了快速和高效的部署選項,幫助開發者專注於業務邏輯而非底層基礎設施。

AWS EKS和DoEKS專案為開源社群提供了強大的支援,甚至是可以一鍵執行指令碼,直接把這個開源元件拉起來,使得開發者可以更加便捷地部署和管理分散式系統。

file

資料採集與處理

  • Kafka on EKS: 完全託管的服務,用於處理大規模的實時資料流。

  • Flink & Spark on EKS: 提供實時和批次資料處理能力,已與EKS完美整合,支援高效的資料分析任務。

  • DolphinScheduler on EKS: 我們計劃提供排程和工作流管理,使任務自動化和最佳化更加容易。

一鍵部署與管理

  • DolphinScheduler: 已開發出專門的一鍵部署解決方案和指導文件,幫助使用者快速在EKS上部署並管理DolphinScheduler。

  • ECR映象版本管理: 提供操作指南,幫助管理和維護DolphinScheduler及其他開源軟體的容器映象版本。

Serverless 計算與ELB

  • Serverless 解決方案: 主要以Serverless計算為目標,提供無需管理伺服器的高效能運算選項,特別適用於彈性需求高的應用。

  • Elastic Load Balancing (ELB): 支援多種協議,提供彈性擴縮容操作,確保應用在不同負載下的高可用性和效能。

綜合解決方案

  • 解決方案地圖: 涵蓋從資料整合到資料湖的全方位解決方案,例如利用Kafka Connect整合資料至Redshift資料倉或資料湖。

  • Apche Paimon與AWS Glue: 結合使用Apche Paimon和AWS Glue進行資料湖建設,提供全面的資料管理解決方案。

對於海豚排程我們也做了很多內容。比如說像剛才提到的 AWS 部署無伺服器的 DolphinScheduler,我們就提供了一個無伺服器的在 EKS 上快速部署的解決方案。然後還有包括 EMR Serverless,還有我們有客戶或者有客戶也跟我們一起合作了,幫助我們的開發者或者使用者實現這種精確的監控或者是成本最佳化。

監控和運維支援

AWS不僅關注軟體的部署和效能最佳化,還提供一系列監控和告警解決方案,幫助客戶有效管理雲上資源:

  • 可觀測性:AWS提供工具和服務來監控雲元件的效能,確保系統的可靠性和效率。

  • 安全和許可權管理:結合先進的許可權管理策略,AWS加強了資料和應用的安全性。

AWS Marketplace的第三方產品支援

  • 訂閱服務:在AWS Marketplace,使用者可以輕鬆訂閱第三方提供的產品,如商業版的DolphinScheduler,進一步簡化了軟體的獲取和部署過程。

AWS的架構師團隊也致力於為客戶提供最佳的架構選擇和最佳化建議,確保雲上開源軟體的高效能和可擴充套件性。

社群貢獻和生態發展

  • 社群參與:AWS積極參與開源社群,不僅貢獻程式碼,還分享案例和最佳實踐,促進開源軟體的發展和創新。

  • 技術探討和解決方案分享:透過公開討論和技術分享,AWS幫助開發者更好地理解和應用最新的雲技術。

雲原生服務和操作指南

AWS不僅提供基礎的虛擬機器服務,還透過雲原生技術和詳細的操作指南幫助客戶構建和最佳化業務流程:

  • Workshops和指導:AWS定期舉辦Workshop,提供實操指導,幫助客戶充分利用雲平臺的潛力。

結論

AWS致力於成為企業使用和構建開源軟體的首選平臺。透過提供強大的服務、解決方案和社群支援,AWS確保客戶能夠在全球範圍內順利實施和擴充套件他們的業務。最後希望本文的分享對大家有所幫助。

延展閱讀:使用 Apache DolphinScheduler 構建和部署大資料平臺,將任務提交至 AWS 的實踐經驗

本文由 白鯨開源 提供釋出支援!

相關文章