DolphinScheduler體系架構(gòu)突破_第1頁
DolphinScheduler體系架構(gòu)突破_第2頁
DolphinScheduler體系架構(gòu)突破_第3頁
DolphinScheduler體系架構(gòu)突破_第4頁
DolphinScheduler體系架構(gòu)突破_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

新一代大數(shù)據(jù)任務(wù)調(diào)度-Apache

DolphinScheduler架構(gòu)突破之路演講人:代立冬Apache

DolphinScheduler

PPMC

&

Committer(incubator)目錄/CONTENTS01DolphinScheudler介紹02架構(gòu)突破之路03Roadmap

&

用戶案例-2.0架構(gòu)規(guī)劃04如何做好開源項(xiàng)目01DolphinScheduler介紹EXECUTIONApacheDolphinScheduler簡(jiǎn)介Apache

DolphinScheduler

于17年在易觀數(shù)科立項(xiàng),19年3月開源,8月進(jìn)入Apache孵化器,已累計(jì)有400+公司在生產(chǎn)上使用。DolphinScheduler致力于“解決大數(shù)據(jù)任務(wù)之間錯(cuò)綜復(fù)雜的依賴關(guān)系,使整個(gè)數(shù)據(jù)處理流程直觀可見”。DolphinScheduler

以DAG(有向無環(huán)圖)的方式將任務(wù)連接起來,可實(shí)時(shí)監(jiān)控任務(wù)的運(yùn)行狀態(tài),同時(shí)支持重試、從指定節(jié)點(diǎn)恢復(fù)失敗、暫停及Kill任務(wù)等操作Apache

DolphinScheduler部分用戶(排名不分先后)Apache

DolphinScheduler社區(qū)建設(shè)情況代碼貢獻(xiàn)者文檔貢獻(xiàn)者多點(diǎn)頭條易觀騰訊京東平安華為陌陌觀遠(yuǎn)阿里百度小米滴滴中移動(dòng)荔枝貢獻(xiàn)者公司分布360同程快手Apache組織崇尚“社區(qū)大于代碼”研發(fā)ApacheDolphinScheduler的背景可視化DAG依賴調(diào)用高可用任務(wù)日志/告警機(jī)制流程可容錯(cuò)能力0102030405簡(jiǎn)單易操作實(shí)時(shí)查看運(yùn)行狀態(tài)失敗重試、回滾、轉(zhuǎn)移簡(jiǎn)單易維護(hù)任務(wù)自依賴流程依賴等便于排錯(cuò)、提醒豐富的任務(wù)類型跨語言自定義插件機(jī)制補(bǔ)數(shù)06重刷歷史數(shù)據(jù)Apache

DolphinScheduler調(diào)度系統(tǒng)優(yōu)勢(shì)

高可靠性

豐富的使用場(chǎng)景高擴(kuò)展性去中心化的多Master和多Worker,自身支持HA功能,采用任務(wù)隊(duì)列來避免過載,不會(huì)造成機(jī)器卡死DAG

監(jiān)控界面,所有流程定義都是可視化,通過拖拽任務(wù)定制DAG,通過API方式與第三方系統(tǒng)對(duì)接,一鍵部署支持暫?;謴?fù)操作.支持多租戶,更好的應(yīng)對(duì)大數(shù)據(jù)的使用場(chǎng)景.支持更多的任務(wù)類型,如spark,hive,mr,python,sub_process,shell支持自定義任務(wù)類型,調(diào)度器使用分布式調(diào)度,調(diào)度能力隨集群線性增長(zhǎng),Master和Worker支持動(dòng)態(tài)上下線

簡(jiǎn)單易用ApacheDolphinScheduler調(diào)度系統(tǒng)主要能力支持每日十萬數(shù)據(jù)量級(jí)任務(wù)穩(wěn)定運(yùn)行工作流可定時(shí)、依賴、手動(dòng)、暫停/停止/恢復(fù)Task以DAG形式關(guān)聯(lián),實(shí)時(shí)監(jiān)控任務(wù)的狀態(tài)去中心化設(shè)計(jì)確保系統(tǒng)的穩(wěn)定、高可用支持Shell、MR、Spark、SQL、依賴等10多種任務(wù)類型支持補(bǔ)數(shù)、多租戶、日志在線查看及資源在線管理完善的系統(tǒng)服務(wù)監(jiān)控,任務(wù)超時(shí)告警/失敗工作流優(yōu)先級(jí)、任務(wù)優(yōu)先級(jí),全局參數(shù)及局部自定義參數(shù)Apache

DolphinScheduler可視化流程任務(wù)管理:任務(wù)狀態(tài)多粒度監(jiān)控任務(wù)執(zhí)行狀態(tài)回溯數(shù)據(jù)加工平臺(tái)任務(wù)監(jiān)控總覽流程實(shí)例狀態(tài)查看任務(wù)執(zhí)行日志查看任務(wù)執(zhí)行日志查看,方便運(yùn)維實(shí)時(shí)了解任務(wù)運(yùn)行狀況,快速定位問題K8S支持優(yōu)點(diǎn):彈性伸縮充分利用服務(wù)器資源環(huán)境隔離

云原生是趨勢(shì)02架構(gòu)突破之路EXECUTIONDolphinScheduler

1.2架構(gòu)MasterServer無中心設(shè)計(jì)MasterServer主要負(fù)責(zé)DAG任務(wù)切分、任務(wù)提交監(jiān)控監(jiān)聽其它MasterServer和WorkerServer的健康狀態(tài)及容錯(cuò)處理WorkerServer無中心設(shè)計(jì)WorkerServer主要負(fù)責(zé)維護(hù)任務(wù)的生命周期WorkerServer服務(wù)啟動(dòng)時(shí)向Zookeeper注冊(cè)臨時(shí)節(jié)點(diǎn),并維持心跳DolphinScheduler

1.2架構(gòu)不足Master將任務(wù)信息存放到zk隊(duì)列中,由Worker通過分布式鎖的方式去消費(fèi)任務(wù)隊(duì)列,延遲了任務(wù)開始執(zhí)行的時(shí)間(經(jīng)歷了1-2-3)。為保證性能,zk的數(shù)據(jù)節(jié)點(diǎn)無法存儲(chǔ)執(zhí)行任務(wù)所需的全部信息。因而Worker需要操作數(shù)據(jù)庫去獲取相關(guān)信息,增加了數(shù)據(jù)庫的負(fù)擔(dān)。Master沒有真正意義上地去管理;Worker卻做了許多不必承擔(dān)的工作1234DolphinScheduler

1.3.x架構(gòu)數(shù)據(jù)庫減壓,減少極端情況下的可能造成的調(diào)度延時(shí)Worker去數(shù)據(jù)庫操作,只負(fù)責(zé)任務(wù)的運(yùn)行,職責(zé)更單一Master和Worker直接通信進(jìn)行任務(wù)分配,降低延時(shí)Master多種策略分發(fā)任務(wù)

-

Worker節(jié)點(diǎn)負(fù)載均衡策略:隨機(jī)、循環(huán)及CPU和內(nèi)存的線性加權(quán)負(fù)載均衡DolphinScheduler

1.3.x與1.2.x系統(tǒng)運(yùn)作的差異1.3.x架構(gòu)(黑線)中Master職能更加豐富,Worker則更加專注于執(zhí)行。1.2.x中Worker不僅要主動(dòng)“攬活”,還要負(fù)責(zé)“善后”工作。任務(wù)的執(zhí)行狀態(tài)要通過訪問數(shù)據(jù)庫才能獲得,對(duì)于那些任務(wù)復(fù)雜的工作流來說,時(shí)效性,任務(wù)吞吐,數(shù)據(jù)庫壓力都會(huì)成為調(diào)度性能的瓶頸。DolphinScheduler

1.3.x細(xì)節(jié)-引Netty實(shí)現(xiàn)Master與Worker的直接通信Master與Worker間的通信信息被封裝成不同的Event實(shí)例,由Master的EventQueue統(tǒng)一管理Event實(shí)例在pipeline中流轉(zhuǎn),Master與Worker在各自的Netty服務(wù)端與客戶端之間完成了直接通信Worker服務(wù)容錯(cuò)設(shè)計(jì)Worker容錯(cuò)主要是是kill任務(wù),任務(wù)在其他機(jī)器上重新提交03Roadmap

&用戶案例EXECUTION-

2.0架構(gòu)規(guī)劃Roadmap

2.0架構(gòu)規(guī)劃高性能-

Master

重構(gòu)減少數(shù)據(jù)庫輪詢?nèi)シ植际芥i減少線程使用

Roadmap

2.0架構(gòu)規(guī)劃2.0架構(gòu)進(jìn)一步提升性能和擴(kuò)展性

減少數(shù)據(jù)庫輪詢、去分布式鎖,新增Scheduler(HA)API直接與Master通信

Roadmap

2.0架構(gòu)規(guī)劃2.0架構(gòu)進(jìn)一步提升性能和擴(kuò)展性

Master與Master通信,Master內(nèi)部減少線程使用Master執(zhí)行完工作流/任務(wù),發(fā)送結(jié)果給別的Master(檢查是否需要),依賴和子工作流需要

Master內(nèi)部用一個(gè)輪詢線程,負(fù)責(zé)輪詢其負(fù)責(zé)的所有工作流的狀態(tài)。Roadmap

2.0架構(gòu)規(guī)劃Service

Provide

Interface,

簡(jiǎn)稱SPI1、郵件告警SPI化,新增短信告警、腳本回調(diào)告警實(shí)現(xiàn)(doing)2、注冊(cè)中心SPI化,支持Etcd、Zookeeper等注冊(cè)中心3、資源存儲(chǔ)SPI化,HDFS、各種云等存儲(chǔ)4、全局隊(duì)列SPI化,支持Redis、Zookeeper等充當(dāng)任務(wù)隊(duì)列5、任務(wù)插件SPI化,支持?jǐn)U展任務(wù)類型6、日志存儲(chǔ)SPI化(優(yōu)先級(jí)低)SPI優(yōu)點(diǎn)1、SPI設(shè)計(jì)保持簡(jiǎn)潔2、不依賴過多第三方JAR3、各個(gè)插件保持獨(dú)立缺點(diǎn)可能會(huì)存在些冗余代碼的存在2.0架構(gòu)進(jìn)一步提升性能和擴(kuò)展性Roadmap

-

2.0架構(gòu)規(guī)劃支持更多數(shù)據(jù)組件集成目前的10多種任務(wù)類型可能不能滿足需求數(shù)據(jù)同步任務(wù)KETTLE任務(wù)數(shù)據(jù)質(zhì)量......SQL任務(wù)數(shù)據(jù)接入數(shù)據(jù)質(zhì)量數(shù)據(jù)開發(fā)存儲(chǔ)過程任務(wù)業(yè)務(wù)任務(wù)1業(yè)務(wù)任務(wù)N解決辦法:任務(wù)插件化熱插拔Roadmap

–功能規(guī)劃有個(gè)任務(wù)隊(duì)列設(shè)置的頁面,這個(gè)頁面可以設(shè)置多個(gè)隊(duì)列,每個(gè)隊(duì)列里可以設(shè)置任務(wù)并發(fā)數(shù),每個(gè)任務(wù)可以指定他所屬的隊(duì)列頁面爆炸只關(guān)注自己相關(guān)的任務(wù)任務(wù)結(jié)果參數(shù)傳遞任務(wù)并發(fā)數(shù)控制列表依賴工作流版本管理(done)DolphinScheduler在易觀千帆中的應(yīng)用

易觀千帆是一款A(yù)pp對(duì)標(biāo)分析產(chǎn)品。千帆是每天需要處理數(shù)百億條數(shù)據(jù),月活6.2億,6.8

PB

的大數(shù)據(jù)集群經(jīng)過每天上萬個(gè)任務(wù)ETL處理加工而產(chǎn)生的SaaS服務(wù)應(yīng)用。2018年開始使用DolphinScheduler來調(diào)度整個(gè)ETL過程。右圖是其中一條工作流DolphinScheduler在360奇安信的應(yīng)用321678459資源文件的在線上傳,管理jar包不怕丟實(shí)現(xiàn)集群高可用集群去中心化支持多租戶咱倆不能用一個(gè)賬號(hào)權(quán)限管理我只能訪問授權(quán)的項(xiàng)目和資源各種復(fù)雜調(diào)度定時(shí)調(diào)度、依賴調(diào)度、手動(dòng)調(diào)度豐富的任務(wù)類型可視化分布式易擴(kuò)展無單點(diǎn)問題資源不夠了要擴(kuò)容sparkshellMRHIVE

python…拖拽生成DAG工作流任務(wù)失敗重試/告警你想重試幾次每次間隔多久失敗要不要發(fā)郵件告訴你?Why

DolphinScheduler?DolphinScheduler在優(yōu)路科技的應(yīng)用在使用

Airflow

的過程中,出現(xiàn)過以下問題:1)、部署及集群擴(kuò)容相較于復(fù)雜及麻煩;2)、通過

Python

代碼繪制

DAG,當(dāng)任務(wù)數(shù)及依賴增多后,不便于維護(hù);3)、當(dāng)任務(wù)量多的時(shí),容易造成卡死。那么DolphinScheduler的出現(xiàn)解決了優(yōu)路的哪些問題呢?1)、部署及集群擴(kuò)容簡(jiǎn)單,本身我司也對(duì)DolphinScheduler做了一定的定制化;2)、流程可視化,并且可以通過拖拽的方式來繪制

DAG;萬年歷DolphinScheduler

&

K8S在優(yōu)路科技的應(yīng)用DolphinScheduler在T3出行的應(yīng)用調(diào)度系統(tǒng)對(duì)比表

高可用是

易用性一般

較好

較好

社區(qū)活躍度中

活躍

近期活躍

可擴(kuò)展性一般

一般

hadoop集成深入

一般

一般

深入

維護(hù)代價(jià)高

OozieAzkabanAirflow DolphinSchedulerT3從高可用、易用性、社區(qū)活躍度、可拓展性、與Hadoop生態(tài)圈集成以及維護(hù)成本幾個(gè)維度進(jìn)行了調(diào)研對(duì)比DolphinScheduler在T3出行的應(yīng)用低延遲的數(shù)據(jù)攝入Hudi與Spark解耦支持Flink引擎流式寫入高效快速的數(shù)據(jù)加工寫commit通知調(diào)度集成低延遲的交互式查詢分析Zeppelin集成Alluxio加速流式消費(fèi)流式生產(chǎn)查詢分析調(diào)度加工摘自Apache

Hudi

PMC楊華/趙玉威同學(xué)分享:T3出行在數(shù)據(jù)湖上進(jìn)行準(zhǔn)實(shí)時(shí)分析04EXECUTION如何做好開源項(xiàng)目Apache

wayIndependence01CommunityOverCode02項(xiàng)目獨(dú)立廠商中立社區(qū)勝于代碼Apache

Way精英治理同儕社區(qū)共識(shí)決策開放溝通責(zé)任監(jiān)督、讓干活的人來做決策通過功績(jī)不斷獲取信任和影響力共識(shí)投票基于信任和監(jiān)督同儕評(píng)審公開透明異步協(xié)作(郵件溝通等)參與ASF是通過個(gè)人而不是組織進(jìn)行的相互尊重、角色平等Apache項(xiàng)目?jī)?nèi)組織結(jié)構(gòu)職責(zé)參與討論P(yáng)RReview回答問題項(xiàng)目推廣監(jiān)督項(xiàng)目發(fā)展參與項(xiàng)目發(fā)布ContributorCommitterPMCDolphinScheduler社區(qū)從0

-

1

1、產(chǎn)品是基礎(chǔ),先讓第一批用戶用上(辛勤答疑、交流等)2、找到第一個(gè)外部開發(fā)者(貢獻(xiàn)者)3、重視文檔(安裝文檔、使用文檔等)4、社區(qū)運(yùn)營(yíng) 1、保持社區(qū)友好、耐心引導(dǎo)貢獻(xiàn) 2、標(biāo)桿用戶維護(hù) 3、宣傳推廣與合作(用戶站臺(tái)、演講明星、社區(qū)合作等)

5、堅(jiān)持開源精神、樂于幫助他人DolphinScheduler項(xiàng)目發(fā)展歷程2017.122018.052019.022019.032019.052019.08外部種子用戶使用

3月30號(hào)正式對(duì)外開源–

1.0.0版本

決定開源

花了2個(gè)月進(jìn)行重構(gòu)升級(jí)內(nèi)部使用

千帆產(chǎn)品線使用DolphinScheduler

架構(gòu)設(shè)計(jì)進(jìn)入apache孵化器1.0.1、1.0.2、1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論