




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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如何做好開(kāi)源項(xiàng)目01DolphinScheduler介紹EXECUTIONApacheDolphinScheduler簡(jiǎn)介Apache
DolphinScheduler
于17年在易觀數(shù)科立項(xiàng),19年3月開(kāi)源,8月進(jìn)入Apache孵化器,已累計(jì)有400+公司在生產(chǎn)上使用。DolphinScheduler致力于“解決大數(shù)據(jù)任務(wù)之間錯(cuò)綜復(fù)雜的依賴關(guān)系,使整個(gè)數(shù)據(jù)處理流程直觀可見(jiàn)”。DolphinScheduler
以DAG(有向無(wú)環(huán)圖)的方式將任務(wù)連接起來(lái),可實(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ù)類型跨語(yǔ)言自定義插件機(jī)制補(bǔ)數(shù)06重刷歷史數(shù)據(jù)Apache
DolphinScheduler調(diào)度系統(tǒng)優(yōu)勢(shì)
高可靠性
豐富的使用場(chǎng)景高擴(kuò)展性去中心化的多Master和多Worker,自身支持HA功能,采用任務(wù)隊(duì)列來(lái)避免過(guò)載,不會(huì)造成機(jī)器卡死DAG
監(jiān)控界面,所有流程定義都是可視化,通過(guò)拖拽任務(wù)定制DAG,通過(guò)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)主要能力支持每日十萬(wàn)數(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)行狀況,快速定位問(wèn)題K8S支持優(yōu)點(diǎn):彈性伸縮充分利用服務(wù)器資源環(huán)境隔離
云原生是趨勢(shì)02架構(gòu)突破之路EXECUTIONDolphinScheduler
1.2架構(gòu)MasterServer無(wú)中心設(shè)計(jì)MasterServer主要負(fù)責(zé)DAG任務(wù)切分、任務(wù)提交監(jiān)控監(jiān)聽(tīng)其它MasterServer和WorkerServer的健康狀態(tài)及容錯(cuò)處理WorkerServer無(wú)中心設(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通過(guò)分布式鎖的方式去消費(fèi)任務(wù)隊(duì)列,延遲了任務(wù)開(kāi)始執(zhí)行的時(shí)間(經(jīng)歷了1-2-3)。為保證性能,zk的數(shù)據(jù)節(jié)點(diǎn)無(wú)法存儲(chǔ)執(zhí)行任務(wù)所需的全部信息。因而Worker需要操作數(shù)據(jù)庫(kù)去獲取相關(guān)信息,增加了數(shù)據(jù)庫(kù)的負(fù)擔(dān)。Master沒(méi)有真正意義上地去管理;Worker卻做了許多不必承擔(dān)的工作1234DolphinScheduler
1.3.x架構(gòu)數(shù)據(jù)庫(kù)減壓,減少極端情況下的可能造成的調(diào)度延時(shí)Worker去數(shù)據(jù)庫(kù)操作,只負(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)要通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)才能獲得,對(duì)于那些任務(wù)復(fù)雜的工作流來(lái)說(shuō),時(shí)效性,任務(wù)吞吐,數(shù)據(jù)庫(kù)壓力都會(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ù)庫(kù)輪詢?nèi)シ植际芥i減少線程使用
Roadmap
–
2.0架構(gòu)規(guī)劃2.0架構(gòu)進(jìn)一步提升性能和擴(kuò)展性
減少數(shù)據(jù)庫(kù)輪詢、去分布式鎖,新增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、不依賴過(guò)多第三方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ù)開(kāi)發(fā)存儲(chǔ)過(guò)程任務(wù)業(yè)務(wù)任務(wù)1業(yè)務(wù)任務(wù)N解決辦法:任務(wù)插件化熱插拔Roadmap
–功能規(guī)劃有個(gè)任務(wù)隊(duì)列設(shè)置的頁(yè)面,這個(gè)頁(yè)面可以設(shè)置多個(gè)隊(duì)列,每個(gè)隊(duì)列里可以設(shè)置任務(wù)并發(fā)數(shù),每個(gè)任務(wù)可以指定他所屬的隊(duì)列頁(yè)面爆炸只關(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)過(guò)每天上萬(wàn)個(gè)任務(wù)ETL處理加工而產(chǎn)生的SaaS服務(wù)應(yīng)用。2018年開(kāi)始使用DolphinScheduler來(lái)調(diào)度整個(gè)ETL過(guò)程。右圖是其中一條工作流DolphinScheduler在360奇安信的應(yīng)用321678459資源文件的在線上傳,管理jar包不怕丟實(shí)現(xiàn)集群高可用集群去中心化支持多租戶咱倆不能用一個(gè)賬號(hào)權(quán)限管理我只能訪問(wèn)授權(quán)的項(xiàng)目和資源各種復(fù)雜調(diào)度定時(shí)調(diào)度、依賴調(diào)度、手動(dòng)調(diào)度豐富的任務(wù)類型可視化分布式易擴(kuò)展無(wú)單點(diǎn)問(wèn)題資源不夠了要擴(kuò)容sparkshellMRHIVE
python…拖拽生成DAG工作流任務(wù)失敗重試/告警你想重試幾次每次間隔多久失敗要不要發(fā)郵件告訴你?Why
DolphinScheduler?DolphinScheduler在優(yōu)路科技的應(yīng)用在使用
Airflow
的過(guò)程中,出現(xiàn)過(guò)以下問(wèn)題:1)、部署及集群擴(kuò)容相較于復(fù)雜及麻煩;2)、通過(guò)
Python
代碼繪制
DAG,當(dāng)任務(wù)數(shù)及依賴增多后,不便于維護(hù);3)、當(dāng)任務(wù)量多的時(shí),容易造成卡死。那么DolphinScheduler的出現(xiàn)解決了優(yōu)路的哪些問(wèn)題呢?1)、部署及集群擴(kuò)容簡(jiǎn)單,本身我司也對(duì)DolphinScheduler做了一定的定制化;2)、流程可視化,并且可以通過(guò)拖拽的方式來(lái)繪制
DAG;萬(wàn)年歷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引擎流式寫(xiě)入高效快速的數(shù)據(jù)加工寫(xiě)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如何做好開(kāi)源項(xiàng)目Apache
wayIndependence01CommunityOverCode02項(xiàng)目獨(dú)立廠商中立社區(qū)勝于代碼Apache
Way精英治理同儕社區(qū)共識(shí)決策開(kāi)放溝通責(zé)任監(jiān)督、讓干活的人來(lái)做決策通過(guò)功績(jī)不斷獲取信任和影響力共識(shí)投票基于信任和監(jiān)督同儕評(píng)審公開(kāi)透明異步協(xié)作(郵件溝通等)參與ASF是通過(guò)個(gè)人而不是組織進(jìn)行的相互尊重、角色平等Apache項(xiàng)目?jī)?nèi)組織結(jié)構(gòu)職責(zé)參與討論P(yáng)RReview回答問(wèn)題項(xiàng)目推廣監(jiān)督項(xiàng)目發(fā)展參與項(xiàng)目發(fā)布ContributorCommitterPMCDolphinScheduler社區(qū)從0
-
1
1、產(chǎn)品是基礎(chǔ),先讓第一批用戶用上(辛勤答疑、交流等)2、找到第一個(gè)外部開(kāi)發(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)持開(kāi)源精神、樂(lè)于幫助他人DolphinScheduler項(xiàng)目發(fā)展歷程2017.122018.052019.022019.032019.052019.08外部種子用戶使用
3月30號(hào)正式對(duì)外開(kāi)源–
1.0.0版本
決定開(kāi)源
花了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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作協(xié)議甲方乙方
- 高中語(yǔ)文 第5課 蘇軾詞兩首教學(xué)實(shí)錄2 新人教版必修4
- 第四單元《乘車》(教學(xué)設(shè)計(jì))- 2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編集錦
- 第六章金屬資源綜合利用大單元教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)滬教版(2024)上冊(cè)
- 參購(gòu)合同范本
- 倉(cāng)儲(chǔ)合同范例
- 第13課 西歐經(jīng)濟(jì)和社會(huì)發(fā)展 教學(xué)設(shè)計(jì)
- 四年級(jí)英語(yǔ)下冊(cè) Unit 2 What time is it Part A第一課時(shí)教學(xué)實(shí)錄2 人教PEP
- 山東省惠州市惠東縣梁化中學(xué)九年級(jí)化學(xué)上冊(cè) 2.2 氧氣的性質(zhì)和用途教學(xué)實(shí)錄 新人教版
- 燃?xì)夤艿拦こ淌┕そM織設(shè)計(jì)方案
- 課題申報(bào)書(shū):“大思政”視域下大學(xué)生思政教育融入就業(yè)教育路徑研究
- 2025年度新股東增資擴(kuò)股股權(quán)激勵(lì)與員工持股計(jì)劃協(xié)議3篇
- 《特種設(shè)備安全管理員》考試通關(guān)題庫(kù)(600題 含參考答案)
- 2025年山東核電有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年宜賓人才限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 施工安全情況日常巡查表(完整版)
- 2025年醫(yī)院科教工作計(jì)劃
- 《亞洲概況及東亞》課件
- 河北交投物流有限公司所屬公司招聘筆試沖刺題2025
- 第二節(jié) 物業(yè)管理服務(wù)機(jī)構(gòu)設(shè)置及運(yùn)作流程
評(píng)論
0/150
提交評(píng)論