版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025個(gè)人知識(shí)產(chǎn)權(quán)質(zhì)押貸款合同范本二零二五3篇
- 2025年度危險(xiǎn)化學(xué)品堆放場(chǎng)地租賃及安全管理合同3篇
- 2025年度特色美食街餐飲資源承包合作合同3篇
- 2025年度星級(jí)酒店餐飲部承包經(jīng)營(yíng)合同范本3篇
- 2025年度塔吊設(shè)備租賃、維修及保養(yǎng)綜合服務(wù)合同4篇
- 2025年度生活用品代購委托合同4篇
- 2025年度塔吊司機(jī)職業(yè)健康體檢服務(wù)合同范本2篇
- 2024種植業(yè)土地租賃合同
- 2025年度消防安全責(zé)任合同范本詳解3篇
- 2024版內(nèi)部施工合同
- 2025年工程合作協(xié)議書
- 2025年山東省東營(yíng)市東營(yíng)區(qū)融媒體中心招聘全媒體采編播專業(yè)技術(shù)人員10人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年宜賓人才限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- KAT1-2023井下探放水技術(shù)規(guī)范
- 垃圾處理廠工程施工組織設(shè)計(jì)
- 天皰瘡患者護(hù)理
- 駕駛證學(xué)法減分(學(xué)法免分)題庫及答案200題完整版
- 2024年四川省瀘州市中考英語試題含解析
- 2025屆河南省九師聯(lián)盟商開大聯(lián)考高一數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 撫養(yǎng)權(quán)起訴狀(31篇)
- 2024年“一崗雙責(zé)”制度(五篇)
評(píng)論
0/150
提交評(píng)論