Apache Flink,流計(jì)算?不僅僅是流計(jì)算!
2018年12月20日,由阿里巴巴集團(tuán)主辦的Flink Forward China在北京國家會(huì)議中心舉行。Flink Forward是由Apache軟件基金會(huì)授權(quán)的全球范圍內(nèi)的Flink技術(shù)大會(huì),2015年開始在德國柏林舉辦,去年開始增加美國舊金山會(huì)場。今年第一次進(jìn)入中國,就吸引超過1000人到達(dá)現(xiàn)場,近20000人在線觀看直播,可謂為一場大數(shù)據(jù)技術(shù)的饕餮盛宴,無不昭示Apache Flink 作為下一代大數(shù)據(jù)計(jì)算引擎的繁榮生態(tài)。
本次大會(huì)邀請到了來自阿里巴巴、騰訊、華為、滴滴、美團(tuán)點(diǎn)評、字節(jié)跳動(dòng)、愛奇藝、去哪兒、Uber、EMC、DA(Flink 創(chuàng)始公司)等國內(nèi)外知名企業(yè)以及Apache軟件基金會(huì)的嘉賓為大家分享了Apache Flink的成長歷程、應(yīng)用場景和發(fā)展趨勢。
參與有道,如何更“好”地貢獻(xiàn) Apache 項(xiàng)目
上午的Keynote由來自Apache軟件基金會(huì)的秘書長Craig Russell開場,Craig首先了分享了Apache開源之道,以及開源社區(qū)的精神和體制,然后以Apache Flink項(xiàng)目的成長經(jīng)歷為背景,向大家介紹了如何創(chuàng)建以及管理一個(gè)Apache開源項(xiàng)目,以及如何為Apache開源項(xiàng)目做貢獻(xiàn),并跟隨開源項(xiàng)目一起成長和收獲。
通過Craig的分享,我們也更詳細(xì)的了解到了Apache Flink的發(fā)展經(jīng)歷。Flink早期起源于德國柏林工業(yè)大學(xué)的一個(gè)研究項(xiàng)目Stratosphere,并于2014年4月捐獻(xiàn)給Apache軟件基金會(huì),同時(shí)重新定位品牌為Flink,經(jīng)過8個(gè)月孵化期,在2014年12月成功從Apache軟件基金會(huì)畢業(yè),成為Apache頂級項(xiàng)目,從此開始在大數(shù)據(jù)領(lǐng)域航行。經(jīng)過最近4年的持續(xù)快速發(fā)展,Apache Flink社區(qū)已經(jīng)培養(yǎng)出了42名Committer和19名PMC Member,不斷加入的新鮮血液為Apache Flink社區(qū)持續(xù)貢獻(xiàn)代碼,并推動(dòng)社區(qū)健康快速的發(fā)展。
云上計(jì)算普惠科技
在Craig分享后,阿里巴巴集團(tuán)副總裁、搜索事業(yè)部與計(jì)算平臺(tái)事業(yè)部負(fù)責(zé)人周靖人進(jìn)行了主題演講。靖人首先向大家介紹了阿里巴巴大數(shù)據(jù)云上計(jì)算的現(xiàn)狀和趨勢,讓大家看到了阿里巴巴大數(shù)據(jù)業(yè)務(wù)場景的超大規(guī)模,以及未來更大的挑戰(zhàn)。
為了更好地支持阿里巴巴未來大數(shù)據(jù)的發(fā)展,阿里大數(shù)據(jù)發(fā)展策略一方面要進(jìn)一步提升計(jì)算力和智能化,增強(qiáng)企業(yè)級服務(wù)能力。同時(shí)也要加強(qiáng)技術(shù)的生態(tài)化建設(shè),大力支持并推動(dòng)開源技術(shù)社區(qū)的發(fā)展,兼容行業(yè)生態(tài)標(biāo)準(zhǔn),發(fā)展生態(tài)伙伴聯(lián)盟,推動(dòng)生態(tài)建設(shè)。
目前阿里巴巴已經(jīng)參與貢獻(xiàn)230+開源項(xiàng)目,具備8000+合作伙伴和2000+ ISV,云上生態(tài)也已經(jīng)突破1000,000開發(fā)人員。在大數(shù)據(jù)領(lǐng)域,阿里巴巴最近幾年對Apache Flink社區(qū)進(jìn)行了持續(xù)大力的投入,貢獻(xiàn)超過15w行代碼,主導(dǎo)建立了Flink China中文社區(qū),加速Flink在國內(nèi)的生態(tài)建設(shè),并于今年開始在北京、杭州、上海、深圳等地多次組織Flink Meetup,促進(jìn)國內(nèi)Flink技術(shù)人員更方便的分享交流。
靖人在分享的最后宣布了阿里巴巴內(nèi)部Flink版本(Blink)將于2019年1月正式開源,本次開源內(nèi)部版本的目標(biāo)主要是希望讓廣大Flink用戶能提前享受到阿里巴巴對Flink的改進(jìn)和貢獻(xiàn)。阿里巴巴同時(shí)會(huì)盡快將Blink中對Flink的各項(xiàng)改進(jìn)和優(yōu)化貢獻(xiàn)給Flink社區(qū),堅(jiān)持對Apache Flink一個(gè)社區(qū)的擁抱和支持。
Apache Flink,如何重新定義計(jì)算?
在靖人宣布阿里巴巴開源內(nèi)部Flink版本(Blink)后,阿里巴巴集團(tuán)研究員蔣曉偉分享了Apache Flink在阿里巴巴內(nèi)部的成長路線以及技術(shù)演進(jìn)之路。
阿里巴巴從2015年開始調(diào)研Flink,并于2016年第一次在搜索場景中上線Flink,在經(jīng)過搜索大數(shù)據(jù)場景的檢驗(yàn)后,2017年Flink開始在阿里巴巴集團(tuán)范圍內(nèi)支持各項(xiàng)實(shí)時(shí)計(jì)算業(yè)務(wù), 到目前為止阿里巴巴基于Flink打造的實(shí)時(shí)計(jì)算平臺(tái),已經(jīng)支持了包括淘寶、天貓、支付寶、高德、飛豬、優(yōu)酷、菜鳥、餓了么等所有阿里巴巴集團(tuán)下的所有子公司的數(shù)據(jù)業(yè)務(wù),并通過阿里云向中小企業(yè)提供一站式實(shí)時(shí)計(jì)算服務(wù)。在2018年的雙11中,阿里實(shí)時(shí)計(jì)算平臺(tái)已經(jīng)實(shí)現(xiàn)了峰值每秒17億次,當(dāng)天萬億級的消息處理能力。
Apache Flink目前在阿里巴巴內(nèi)部最典型的業(yè)務(wù)場景是實(shí)時(shí)BI,阿里巴巴內(nèi)部有著海量的在線交易以及用戶數(shù)據(jù),實(shí)時(shí)看到各個(gè)維度的數(shù)據(jù)統(tǒng)計(jì)可以及時(shí)的感知并指導(dǎo)阿里巴巴的運(yùn)營。下圖是一個(gè)典型的阿里實(shí)時(shí)BI流程,阿里的在線服務(wù)系統(tǒng)和數(shù)據(jù)庫會(huì)實(shí)時(shí)產(chǎn)生大量日志數(shù)據(jù)并進(jìn)入消息隊(duì)列,F(xiàn)link Job會(huì)從消息隊(duì)列中實(shí)時(shí)讀取處理這些數(shù)據(jù),然后將各種統(tǒng)計(jì)分析結(jié)果實(shí)時(shí)更新到KV/Table存儲(chǔ)系統(tǒng)中,例如:HBase,終端用戶可以通過Dashboard實(shí)時(shí)看到各種維度的數(shù)據(jù)統(tǒng)計(jì)分析結(jié)果。
在雙11當(dāng)天,各種維度的實(shí)時(shí)數(shù)據(jù)報(bào)表是指導(dǎo)雙11決策的依據(jù),其中最為關(guān)鍵的就是全球直播的實(shí)時(shí)GMV成交額。Flink已經(jīng)連續(xù)兩年支持阿里巴巴雙11實(shí)時(shí)GMV大屏,一個(gè)看似簡單的數(shù)字,其背后實(shí)際上需要大量Flink計(jì)算任務(wù)平穩(wěn)、精準(zhǔn)地運(yùn)行支撐。
Flink在阿里巴巴另一個(gè)典型的應(yīng)用場景是在線機(jī)器學(xué)習(xí),傳統(tǒng)的離線機(jī)器學(xué)習(xí)方法需要T+1的分析用戶歷史行為,訓(xùn)練出模型,當(dāng)?shù)诙炷P蜕暇€后就已經(jīng)是過去式,用戶當(dāng)前的需求和預(yù)期可能已經(jīng)完全改變。為了給用戶更好的購物消費(fèi)體驗(yàn),阿里巴巴的機(jī)器學(xué)習(xí)系統(tǒng)早已經(jīng)進(jìn)化到在線學(xué)習(xí)時(shí)代,例如:當(dāng)一個(gè)用戶在搜索完一個(gè)Query,瀏覽結(jié)果頁時(shí),或者點(diǎn)擊查看部分商品時(shí),阿里巴巴的在線學(xué)習(xí)系統(tǒng)已經(jīng)可以利用這個(gè)間隙了解到這個(gè)用戶當(dāng)時(shí)的意圖和偏好,并在下次用戶Query時(shí)給出更好的排序,并向用戶推薦更合適的商品,這種方式不僅可以進(jìn)一步提升業(yè)務(wù)效率,同時(shí)也能為用戶帶來更好的產(chǎn)品體驗(yàn),尤其是在雙11這種大促場景,用戶的行為時(shí)效性都是很短的,只有通過實(shí)時(shí)在線學(xué)習(xí)方式,才能做出更加精確的個(gè)性化預(yù)測和推薦。
在線學(xué)習(xí)系統(tǒng)的優(yōu)勢在于可以實(shí)時(shí)收集并處理用戶的行為數(shù)據(jù),從而進(jìn)行實(shí)時(shí)流式的特征計(jì)算和在線訓(xùn)練,并將模型的增量更新實(shí)時(shí)同步回在線系統(tǒng),形成數(shù)據(jù)閉環(huán),通過不斷迭代自動(dòng)優(yōu)化系統(tǒng)效率和用戶體驗(yàn)。在阿里的業(yè)務(wù)規(guī)模下,整個(gè)在線學(xué)習(xí)流程將會(huì)面對海量的用戶數(shù)據(jù)規(guī)模、和極其復(fù)雜的計(jì)算挑戰(zhàn),但在Flink的驅(qū)動(dòng)下,整個(gè)流程可以在秒級完成。
通過以上兩種經(jīng)典場景可以看出阿里巴巴實(shí)時(shí)業(yè)務(wù)場景在各方面的挑戰(zhàn)都很大,直接將Flink社區(qū)版本在阿里上線使用是不現(xiàn)實(shí)的,因此阿里巴巴實(shí)時(shí)計(jì)算團(tuán)隊(duì)這兩年也對Flink進(jìn)行了全面的優(yōu)化、改進(jìn)和功能擴(kuò)展,其中有些功能和改進(jìn)已經(jīng)推回到了Flink社區(qū)。
在Flink Runtime領(lǐng)域,阿里巴巴貢獻(xiàn)了:
· 全新的分布式系統(tǒng)架構(gòu)。 一方面對Flink的Job調(diào)度和資源管理進(jìn)行了解耦,使得Flink可以原生運(yùn)行在YARN,K8S之上;另一方面將Flink的Job調(diào)度從集中式轉(zhuǎn)為了分布式,使得Flink集群規(guī)模可以更大的擴(kuò)展;
· 完善的容錯(cuò)機(jī)制。 Flink默認(rèn)在任何task和master失敗后,都會(huì)整個(gè)Job 重啟,阿里巴巴提出的region-based failover策略以及job manager failover/ha機(jī)制,讓Flink可以運(yùn)行的更加可靠穩(wěn)定;
· 大量的性能優(yōu)化。 Flink早期只提供全量Checkpoint機(jī)制,這在阿里巴巴大規(guī)模State場景下無法正常運(yùn)行,阿里巴巴提出了增量Checkpoint機(jī)制,讓Flink即使在TB級State場景下也可以高效運(yùn)行;Flink Job經(jīng)常在內(nèi)部算子或者UDF中訪問外部存儲(chǔ)系統(tǒng),例如:mysql,hbase,redis等,一旦出現(xiàn)個(gè)別query被卡住,整個(gè)task就被卡住,并通過反壓影響到整個(gè)job,阿里巴巴提出了async IO機(jī)制,大幅降低了同步IO訪問帶來的影響。 此外,阿里巴巴貢獻(xiàn)了credit-based的全新網(wǎng)絡(luò)流控機(jī)制,使得Flink網(wǎng)絡(luò)數(shù)據(jù)傳輸性能得到了顯著提升。
在Flink SQL領(lǐng)域,阿里巴巴貢獻(xiàn)了全新的Streaming SQL語義和功能。 例如:Agg Retraction,UDX支持,DDL支持和大量的Connector適配。
在阿里巴巴,我們發(fā)現(xiàn)很多經(jīng)典的業(yè)務(wù)場景都是同時(shí)具備實(shí)時(shí)流處理和離線批處理兩種需求,而且流處理和批處理中的業(yè)務(wù)邏輯幾乎是一樣的,但用戶需要開發(fā)兩套代碼,兩套集群資源部署,導(dǎo)致額外的成本。例如阿里巴巴的商品搜索索引構(gòu)建流程,白天需要將商品的更新信息流式同步到搜索引擎中,讓用戶可以在搜索引擎中看到實(shí)時(shí)的商品信息,晚上需要將全量的阿里巴巴商品進(jìn)行批處理構(gòu)建全量索引,這就是傳統(tǒng)的Lambda架構(gòu)。
阿里巴巴的解法是希望提供一套批流融合計(jì)算引擎,讓用戶只需開發(fā)一套業(yè)務(wù)代碼,就可以在實(shí)時(shí)和離線兩種場景下復(fù)用,這也是在2015年阿里巴巴選擇Flink作為未來大數(shù)據(jù)引擎的初衷。 Flink基于流處理機(jī)制實(shí)現(xiàn)批流融合相對Spark基于批處理機(jī)制實(shí)現(xiàn)批流融合的思想更自然,更合理,也更有優(yōu)勢,因此阿里巴巴在基于Flink支持大量核心實(shí)時(shí)計(jì)算場景的同時(shí),也在不斷改進(jìn)Flink的架構(gòu),使其朝著真正批流融合的統(tǒng)一計(jì)算引擎方向前進(jìn)。
在Flink Runtime領(lǐng)域,阿里巴巴提出了全新的Operator Framework/API設(shè)計(jì),使其能夠同時(shí)適應(yīng)批流兩種算子特性;同時(shí)在Job調(diào)度和網(wǎng)絡(luò)Shuffle兩種核心機(jī)制上,都實(shí)現(xiàn)了靈活的插件化機(jī)制,使其能夠適應(yīng)批流不同場景的需求。
在Flink SQL領(lǐng)域,阿里巴巴提出了全新的Query Execution和Optimizer架構(gòu),利用高效的二級制數(shù)據(jù)結(jié)構(gòu),更加合理的內(nèi)存利用方式,更細(xì)粒度的Codegen機(jī)制以及更加豐富的優(yōu)化器策略,使得Streaming 和Batch SQL都有了非常大的性能提升。
經(jīng)過大量架構(gòu)改進(jìn)和性能優(yōu)化后,阿里巴巴內(nèi)部Flink版本(Blink)在批處理上也實(shí)現(xiàn)了重大成果突破,在1T,10T和30T的TPC-DS的Benchmark中,Blink的性能數(shù)據(jù)均明顯超出Spark,并且性能優(yōu)勢在數(shù)據(jù)量不斷增加的趨勢下越來越明顯,這也從結(jié)果上驗(yàn)證了Flink基于流做批的架構(gòu)優(yōu)勢。
目前,阿里巴巴的內(nèi)部Flink版本(Blink)已經(jīng)開始支持內(nèi)部批流融合的應(yīng)用場景,例如阿里巴巴的搜索推薦算法平臺(tái),流式和批量的特征以及訓(xùn)練流程都已經(jīng)統(tǒng)一基于Flink在運(yùn)行。
蔣曉偉在分享的最后給出了對Flink未來的一些展望,他認(rèn)為Flink除了批流融合,還有很多新的方向值得去擴(kuò)展,例如:Flink可以進(jìn)一步加強(qiáng)在機(jī)器學(xué)習(xí)和圖計(jì)算生態(tài)上的投入,從而在AI浪潮中實(shí)現(xiàn)新的突破。
此外,F(xiàn)link天然具備基于事件驅(qū)動(dòng)的處理思想,天然的反壓和流控機(jī)制,以及自帶狀態(tài)管理和彈性擴(kuò)縮容的能力,這些優(yōu)勢都在促使基于Flink構(gòu)建微服務(wù)框架成為一種新的思想和解決方案。
總結(jié)蔣曉偉老師的分享,Apache Flink過去雖然在流計(jì)算領(lǐng)域已經(jīng)獲得很大的成功,但Flink并沒有停滯,而是正在不斷在突破自己的邊界,F(xiàn)link不僅僅是Streaming Engine,也不僅僅是Bigdata Engine,未來更希望努力成為Application Engine。
流處理即未來
接下來來自DA(Flink創(chuàng)始公司)的CTO - Stephan Ewen也對Flink的發(fā)展趨勢給出類似的觀點(diǎn)。Stephan認(rèn)為“Streaming Takes on Everything”即流處理是一切計(jì)算的基礎(chǔ), Flink一方面需要朝著離線方向發(fā)展,實(shí)現(xiàn)批流融合大數(shù)據(jù)計(jì)算能力,另一方面也需要朝著更加實(shí)時(shí)在線方向發(fā)展,支持Event-Driven Application。前面已經(jīng)重點(diǎn)闡述了Flink在批流融合計(jì)算方面的進(jìn)展,接下來我們重點(diǎn)介紹下Flink在Event-Driven Application方向的思路。
傳統(tǒng)的應(yīng)用服務(wù)架構(gòu)一般是Online App + Database的架構(gòu),Online App負(fù)責(zé)接收用戶Request,然后進(jìn)行內(nèi)部計(jì)算,最后將Result返回給用戶,Application的內(nèi)部狀態(tài)數(shù)據(jù)存儲(chǔ)在Database中;在Flink的event-driven Application架構(gòu)中,可以認(rèn)為Flink Source接收Request, Sink返回Result, JobGraph進(jìn)行內(nèi)部計(jì)算,狀態(tài)數(shù)據(jù)都存儲(chǔ)在State中。
傳統(tǒng)應(yīng)用服務(wù)架構(gòu)需要自己負(fù)責(zé)分布式和彈性管理,并由Database負(fù)責(zé)數(shù)據(jù)一致性管理;而Flink在這兩方面是存在天然優(yōu)勢的,因?yàn)镕link天然是分布式系統(tǒng),可以自己管理彈性伸縮,此外Flink內(nèi)置了狀態(tài)管理和exactly once一致性語義,因此基于Flink可以更方便、高效實(shí)現(xiàn)Transactional Application。
城市級實(shí)時(shí)計(jì)算的力量
在Apache Flink社區(qū)大神Stephan Ewen的分享后,來自阿里云的AI首席科學(xué)家閔萬里向大家分享了實(shí)時(shí)計(jì)算在阿里云智慧城市中發(fā)揮的力量,通過分享多個(gè)真實(shí)應(yīng)用案例,讓大家對實(shí)時(shí)技術(shù)有了更多的體感和認(rèn)識(shí)。
在城市大腦的業(yè)務(wù)場景中,不僅要能實(shí)時(shí)處理來自各種傳感器收集到的信息,對現(xiàn)實(shí)世界發(fā)生的事情進(jìn)行響應(yīng),同時(shí)也要對未來將要發(fā)生的事情進(jìn)行預(yù)測,例如:接下來那里可能要發(fā)生交通擁堵,從而提前做出干預(yù),這才是更大的價(jià)值。整個(gè)城市大腦的架構(gòu)都運(yùn)行在阿里云基礎(chǔ)設(shè)施之上,Apache Flink承擔(dān)了核心實(shí)時(shí)計(jì)算引擎的角色,負(fù)責(zé)處理各種結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。
在2018年9月的云棲大會(huì)上,阿里云發(fā)布了杭州城市大腦2.0,覆蓋杭州420平方公里,可以監(jiān)控到超過150萬輛在途行駛機(jī)動(dòng)車的實(shí)況信息,這個(gè)看似簡單的事情在過去是很難做到的,現(xiàn)在我們通過1300多個(gè)路口的攝像頭、傳感器以及高德App的實(shí)時(shí)信息,通過Flink進(jìn)行三流合一的處理,就可以實(shí)時(shí)感知到整個(gè)城市交通的脈搏信息,并通過進(jìn)一步分析可以得出延誤、安全等交通指數(shù),預(yù)測感知城市的態(tài)勢發(fā)展。
在杭州,城市大腦通過實(shí)時(shí)分析4000多個(gè)交通攝像頭采集的視頻流,可以實(shí)時(shí)監(jiān)控路上車輛的異常事件,例如:車輛超速、逆行和擦碰等,并將這些異常事件實(shí)時(shí)同步到交警指揮中心進(jìn)行實(shí)時(shí)報(bào)警,目前杭州的交通事件報(bào)警已經(jīng)有95%來自城市大腦自動(dòng)通報(bào)的,這背后都是通過Flink進(jìn)行各種復(fù)雜的計(jì)算邏輯實(shí)時(shí)算出來的。實(shí)時(shí)計(jì)算讓交警處理交通故障的方式從過去的被動(dòng)等待變成了主動(dòng)處理,從而大幅提升城市交通的效率,為老百姓帶來實(shí)實(shí)在在的好處。
這50%,關(guān)乎生死
2018年,城市大腦第一次走出國門,來到馬來西亞吉隆坡,基于實(shí)時(shí)大數(shù)據(jù)對交通進(jìn)行智能調(diào)度,它可以根據(jù)救護(hù)車的行駛信息,以及沿途路況信息,智能調(diào)整紅綠燈,為救護(hù)車開辟綠色快速通道,這項(xiàng)技術(shù)為救護(hù)車節(jié)省了近50%的時(shí)間到達(dá)醫(yī)院,這50%的時(shí)間可能意味著人的生和死,在這里技術(shù)顯得不再骨感,實(shí)時(shí)計(jì)算的力量也許可以挽救生命。
在工業(yè)生產(chǎn)IOT場景中,大量設(shè)備的傳感器都收集了海量的指標(biāo)數(shù)據(jù),這些信息過去都被暫存2個(gè)月后丟棄了,唯一的用途就是在出現(xiàn)生產(chǎn)故障時(shí)拿來分析用,在有了大數(shù)據(jù)實(shí)時(shí)計(jì)算能力后,這些指標(biāo)都可以被實(shí)時(shí)監(jiān)控起來,作為及時(shí)調(diào)控生產(chǎn)流程的依據(jù)。協(xié)鑫光伏是全球最大的光伏切片企業(yè),阿里云利用實(shí)時(shí)設(shè)備監(jiān)控,幫助其提高了1%的良品率,每年可以增加上億元的收入。
滴滴實(shí)時(shí)計(jì)算平臺(tái)架構(gòu)與實(shí)踐
Keynote最后一位嘉賓是來自滴滴出行的研究員羅李,大家都知道滴滴出行是一個(gè)實(shí)時(shí)出行平臺(tái)和交易引擎,它的數(shù)據(jù)和場景天然是實(shí)時(shí)的,各種網(wǎng)約車服務(wù)產(chǎn)生的數(shù)據(jù)都需要實(shí)時(shí)處理和分析。
滴滴的實(shí)時(shí)業(yè)務(wù)場景主要包括實(shí)時(shí)風(fēng)控、實(shí)時(shí)發(fā)券、實(shí)時(shí)異常檢測,實(shí)時(shí)交易、服務(wù)和工單監(jiān)控,以及實(shí)時(shí)乘客、司機(jī)和訂單特征處理等。
滴滴實(shí)時(shí)計(jì)算平臺(tái)發(fā)展已經(jīng)經(jīng)歷了三個(gè)階段,第一階段是各個(gè)業(yè)務(wù)方自建小集群,造成集群和資源碎片化問題;第二階段由公司統(tǒng)一建立了大集群,提供統(tǒng)一的平臺(tái)化服務(wù),降低了集群資源和維護(hù)成本;第三階段是通過Flink SQL方式提供平臺(tái)化服務(wù),通過SQL語言優(yōu)勢進(jìn)一步降低業(yè)務(wù)開發(fā)成本,提升開發(fā)效率。
滴滴現(xiàn)階段基于Apache Flink引擎建設(shè)的實(shí)時(shí)計(jì)算平臺(tái)以開源的Hadoop技術(shù)體系作為平臺(tái)底座,并通過DataStream, SQL和CEP三種API向滴滴內(nèi)部業(yè)務(wù)提供實(shí)時(shí)計(jì)算服務(wù),同時(shí)在平臺(tái)層也已經(jīng)具備相對完善的WebIDE、數(shù)據(jù)血緣管理、監(jiān)控報(bào)警和多組合隔離等機(jī)制。
在滴滴實(shí)時(shí)業(yè)務(wù)的快速發(fā)展推動(dòng)下,其實(shí)時(shí)計(jì)算集群已經(jīng)達(dá)到千臺(tái)規(guī)模,每天運(yùn)行2000+流計(jì)算任務(wù),可以處理PB級的數(shù)據(jù)。
滴滴在搭建Flink實(shí)時(shí)計(jì)算平臺(tái)的過程中,在內(nèi)部也對Flink做了一些改進(jìn),例如在 Stream SQL領(lǐng)域擴(kuò)展了DDL,豐富了 UDF,支持了TTL的雙流Join和維表Join等;在CEP領(lǐng)域,增加了更多算子支持和規(guī)則動(dòng)態(tài)修改能力等,其中部分優(yōu)化已經(jīng)推回了社區(qū)。
最后,羅李介紹了滴滴實(shí)時(shí)計(jì)算平臺(tái)的未來規(guī)劃,主要方向在于進(jìn)一步推廣Stream SQL提升業(yè)務(wù)開發(fā)效率,推動(dòng)CEP在更多業(yè)務(wù)場景落地,同時(shí)完成公司內(nèi)部原有Spark Streaming向Flink的遷移,并發(fā)力IOT領(lǐng)域。
在下午的幾個(gè)分會(huì)場中,來自阿里巴巴、騰訊、華為、滴滴、美團(tuán)點(diǎn)評、字節(jié)跳動(dòng)、愛奇藝、去哪兒、Uber、EMC、DA(Flink 創(chuàng)始公司)的多位嘉賓和講師都圍繞Flink技術(shù)生態(tài)和應(yīng)用場景進(jìn)行了分享和交流。從分享的內(nèi)容上可以看出,BAT三家中阿里巴巴和騰訊都已經(jīng)完全擁抱了Flink;美團(tuán)、滴滴和字節(jié)跳動(dòng)(TMD)三家新興互聯(lián)網(wǎng)企業(yè)在實(shí)時(shí)計(jì)算場景也都已經(jīng)以Flink作為主流技術(shù)方向開始建設(shè),滴滴在Keynote上分享已經(jīng)令人印象深刻,美團(tuán)的實(shí)時(shí)計(jì)算集群也已經(jīng)突破4000臺(tái)規(guī)模,字節(jié)跳動(dòng)(頭條和抖音的母公司)的Flink生產(chǎn)集群規(guī)模更是已經(jīng)令人驚訝的已經(jīng)超過了1w臺(tái)規(guī)模 。
由此可見Apache Flink的技術(shù)理念已經(jīng)在業(yè)界得到了大量認(rèn)可,基于Flink的實(shí)時(shí)計(jì)算解決方案開始在國內(nèi)占據(jù)主流趨勢。下一步Flink需要一方面繼續(xù)完善流計(jì)算能力,爭取在IOT等更多場景落地,與此同時(shí)進(jìn)一步加強(qiáng)在批流融合能力上的全面突破,并完善在機(jī)器學(xué)習(xí)和AI生態(tài)上的建設(shè),以及在event-driven的application和微服務(wù)場景上進(jìn)行更長遠(yuǎn)的探索。
最后期待明年在下一屆Flink Forward China上,會(huì)有更多國內(nèi)外公司來分享Flink技術(shù),展示出更加豐富的應(yīng)用場景和案例,讓我們看到一個(gè)更加枝繁葉茂的Apache Flink生態(tài)系統(tǒng)。