Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

作者:

王峰(花名:莫問(wèn))

阿里巴巴 資深技術(shù)專(zhuān)家

摘要:FlinkForwardChina 主要講了啥,看這一篇文章就夠了

2018年12月20日,由阿里巴巴集團(tuán)主辦的FlinkForwardChina在北京國(guó)家會(huì)議中心舉行。Flink Forward是由Apache軟件基金會(huì)授權(quán)的全球范圍內(nèi)的Flink技術(shù)大會(huì),2015年開(kāi)始在德國(guó)柏林舉辦,去年開(kāi)始增加美國(guó)舊金山會(huì)場(chǎng)。今年第一次進(jìn)入中國(guó),就吸引超過(guò)1000人到達(dá)現(xiàn)場(chǎng),近20000人在線觀看直播,可謂為一場(chǎng)大數(shù)據(jù)技術(shù)的饕餮盛宴,無(wú)不昭示ApacheFlink作為下一代大數(shù)據(jù)計(jì)算引擎的繁榮生態(tài)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

本次大會(huì)邀請(qǐng)到了來(lái)自阿里巴巴、騰訊、華為、滴滴、美團(tuán)點(diǎn)評(píng)、字節(jié)跳動(dòng)、愛(ài)奇藝、去哪兒、Uber、EMC、DA(Flink創(chuàng)始公司)等國(guó)內(nèi)外知名企業(yè)以及Apache軟件基金會(huì)的嘉賓為大家分享了ApacheFlink的成長(zhǎng)歷程、應(yīng)用場(chǎng)景和發(fā)展趨勢(shì)。

  參與有道,如何更“好”地貢獻(xiàn) Apache 項(xiàng)目

上午的Keynote由來(lái)自Apache軟件基金會(huì)的秘書(shū)長(zhǎng)CraigRussell開(kāi)場(chǎng),Craig首先了分享了Apache開(kāi)源之道,以及開(kāi)源社區(qū)的精神和體制,然后以ApacheFlink項(xiàng)目的成長(zhǎng)經(jīng)歷為背景,向大家介紹了如何創(chuàng)建以及管理一個(gè)Apache開(kāi)源項(xiàng)目,以及如何為Apache開(kāi)源項(xiàng)目做貢獻(xiàn),并跟隨開(kāi)源項(xiàng)目一起成長(zhǎng)和收獲。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

通過(guò)Craig的分享,我們也更詳細(xì)的了解到了Apache Flink的發(fā)展經(jīng)歷。Flink早期起源于德國(guó)柏林工業(yè)大學(xué)的一個(gè)研究項(xiàng)目Stratosphere,并于2014年4月捐獻(xiàn)給Apache軟件基金會(huì),同時(shí)重新定位品牌為Flink,經(jīng)過(guò)8個(gè)月孵化期,在2014年12月成功從Apache軟件基金會(huì)畢業(yè),成為Apache頂級(jí)項(xiàng)目,從此開(kāi)始在大數(shù)據(jù)領(lǐng)域航行。經(jīng)過(guò)最近4年的持續(xù)快速發(fā)展,ApacheFlink社區(qū)已經(jīng)培養(yǎng)出了42名Committer和19名PMCMember,不斷加入的新鮮血液為ApacheFlink社區(qū)持續(xù)貢獻(xiàn)代碼,并推動(dòng)社區(qū)健康快速的發(fā)展。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

  云上計(jì)算普惠科技

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在Craig分享后,阿里巴巴集團(tuán)副總裁、搜索事業(yè)部與計(jì)算平臺(tái)事業(yè)部負(fù)責(zé)人周靖人進(jìn)行了主題演講。靖人首先向大家介紹了阿里巴巴大數(shù)據(jù)云上計(jì)算的現(xiàn)狀和趨勢(shì),讓大家看到了阿里巴巴大數(shù)據(jù)業(yè)務(wù)場(chǎng)景的超大規(guī)模,以及未來(lái)更大的挑戰(zhàn)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

為了更好地支持阿里巴巴未來(lái)大數(shù)據(jù)的發(fā)展,阿里大數(shù)據(jù)發(fā)展策略一方面要進(jìn)一步提升計(jì)算力和智能化,增強(qiáng)企業(yè)級(jí)服務(wù)能力。同時(shí)也要加強(qiáng)技術(shù)的生態(tài)化建設(shè),大力支持并推動(dòng)開(kāi)源技術(shù)社區(qū)的發(fā)展,兼容行業(yè)生態(tài)標(biāo)準(zhǔn),發(fā)展生態(tài)伙伴聯(lián)盟,推動(dòng)生態(tài)建設(shè)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

目前阿里巴巴已經(jīng)參與貢獻(xiàn)230+開(kāi)源項(xiàng)目,具備8000+合作伙伴和2000+ ISV,云上生態(tài)也已經(jīng)突破1000,000開(kāi)發(fā)人員。在大數(shù)據(jù)領(lǐng)域,阿里巴巴最近幾年對(duì)ApacheFlink社區(qū)進(jìn)行了持續(xù)大力的投入,貢獻(xiàn)超過(guò)15w行代碼,主導(dǎo)建立了FlinkChina中文社區(qū),加速Flink在國(guó)內(nèi)的生態(tài)建設(shè),并于今年開(kāi)始在北京、杭州、上海、深圳等地多次組織FlinkMeetup,促進(jìn)國(guó)內(nèi)Flink技術(shù)人員更方便的分享交流。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

靖人在分享的最后宣布了阿里巴巴內(nèi)部Flink版本(Blink)將于2019年1月正式開(kāi)源,本次開(kāi)源內(nèi)部版本的目標(biāo)主要是希望讓廣大Flink用戶能提前享受到阿里巴巴對(duì)Flink的改進(jìn)和貢獻(xiàn)。阿里巴巴同時(shí)會(huì)盡快將Blink中對(duì)Flink的各項(xiàng)改進(jìn)和優(yōu)化貢獻(xiàn)給Flink社區(qū),堅(jiān)持對(duì)ApacheFlink一個(gè)社區(qū)的擁抱和支持。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

  ApacheFlink,如何重新定義計(jì)算?

在靖人宣布阿里巴巴開(kāi)源內(nèi)部Flink版本(Blink)后,阿里巴巴集團(tuán)研究員蔣曉偉分享了ApacheFlink在阿里巴巴內(nèi)部的成長(zhǎng)路線以及技術(shù)演進(jìn)之路。

阿里巴巴從2015年開(kāi)始調(diào)研Flink,并于2016年第一次在搜索場(chǎng)景中上線Flink,在經(jīng)過(guò)搜索大數(shù)據(jù)場(chǎng)景的檢驗(yàn)后,2017年Flink開(kāi)始在阿里巴巴集團(tuán)范圍內(nèi)支持各項(xiàng)實(shí)時(shí)計(jì)算業(yè)務(wù), 到目前為止阿里巴巴基于Flink打造的實(shí)時(shí)計(jì)算平臺(tái),已經(jīng)支持了包括淘寶、天貓、支付寶、高德、飛豬、優(yōu)酷、菜鳥(niǎo)、餓了么等所有阿里巴巴集團(tuán)下的所有子公司的數(shù)據(jù)業(yè)務(wù),并通過(guò)阿里云向中小企業(yè)提供一站式實(shí)時(shí)計(jì)算服務(wù)。在2018年的雙11中,阿里實(shí)時(shí)計(jì)算平臺(tái)已經(jīng)實(shí)現(xiàn)了峰值每秒17億次,當(dāng)天萬(wàn)億級(jí)的消息處理能力。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

ApacheFlink目前在阿里巴巴內(nèi)部最典型的業(yè)務(wù)場(chǎng)景是實(shí)時(shí)BI,阿里巴巴內(nèi)部有著海量的在線交易以及用戶數(shù)據(jù),實(shí)時(shí)看到各個(gè)維度的數(shù)據(jù)統(tǒng)計(jì)可以及時(shí)的感知并指導(dǎo)阿里巴巴的運(yùn)營(yíng)。下圖是一個(gè)典型的阿里實(shí)時(shí)BI流程,阿里的在線服務(wù)系統(tǒng)和數(shù)據(jù)庫(kù)會(huì)實(shí)時(shí)產(chǎn)生大量日志數(shù)據(jù)并進(jìn)入消息隊(duì)列,F(xiàn)linkJob會(huì)從消息隊(duì)列中實(shí)時(shí)讀取處理這些數(shù)據(jù),然后將各種統(tǒng)計(jì)分析結(jié)果實(shí)時(shí)更新到KV/Table存儲(chǔ)系統(tǒng)中,例如:HBase,終端用戶可以通過(guò)Dashboard實(shí)時(shí)看到各種維度的數(shù)據(jù)統(tǒng)計(jì)分析結(jié)果。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在雙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è)看似簡(jiǎn)單的數(shù)字,其背后實(shí)際上需要大量Flink計(jì)算任務(wù)平穩(wěn)、精準(zhǔn)地運(yùn)行支撐。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

Flink在阿里巴巴另一個(gè)典型的應(yīng)用場(chǎng)景是在線機(jī)器學(xué)習(xí),傳統(tǒng)的離線機(jī)器學(xué)習(xí)方法需要T+1的分析用戶歷史行為,訓(xùn)練出模型,當(dāng)?shù)诙炷P蜕暇€后就已經(jīng)是過(guò)去式,用戶當(dāng)前的需求和預(yù)期可能已經(jīng)完全改變。為了給用戶更好的購(gòu)物消費(fèi)體驗(yàn),阿里巴巴的機(jī)器學(xué)習(xí)系統(tǒng)早已經(jīng)進(jìn)化到在線學(xué)習(xí)時(shí)代,例如:當(dāng)一個(gè)用戶在搜索完一個(gè)Query,瀏覽結(jié)果頁(yè)時(shí),或者點(diǎn)擊查看部分商品時(shí),阿里巴巴的在線學(xué)習(xí)系統(tǒng)已經(jīng)可以利用這個(gè)間隙了解到這個(gè)用戶當(dāng)時(shí)的意圖和偏好,并在下次用戶Query時(shí)給出更好的排序,并向用戶推薦更合適的商品,這種方式不僅可以進(jìn)一步提升業(yè)務(wù)效率,同時(shí)也能為用戶帶來(lái)更好的產(chǎn)品體驗(yàn),尤其是在雙11這種大促場(chǎng)景,用戶的行為時(shí)效性都是很短的,只有通過(guò)實(shí)時(shí)在線學(xué)習(xí)方式,才能做出更加精確的個(gè)性化預(yù)測(cè)和推薦。

在線學(xué)習(xí)系統(tǒng)的優(yōu)勢(shì)在于可以實(shí)時(shí)收集并處理用戶的行為數(shù)據(jù),從而進(jìn)行實(shí)時(shí)流式的特征計(jì)算和在線訓(xùn)練,并將模型的增量更新實(shí)時(shí)同步回在線系統(tǒng),形成數(shù)據(jù)閉環(huán),通過(guò)不斷迭代自動(dòng)優(yōu)化系統(tǒng)效率和用戶體驗(yàn)。在阿里的業(yè)務(wù)規(guī)模下,整個(gè)在線學(xué)習(xí)流程將會(huì)面對(duì)海量的用戶數(shù)據(jù)規(guī)模、和極其復(fù)雜的計(jì)算挑戰(zhàn),但在Flink的驅(qū)動(dòng)下,整個(gè)流程可以在秒級(jí)完成。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

通過(guò)以上兩種經(jīng)典場(chǎng)景可以看出阿里巴巴實(shí)時(shí)業(yè)務(wù)場(chǎng)景在各方面的挑戰(zhàn)都很大,直接將Flink社區(qū)版本在阿里上線使用是不現(xiàn)實(shí)的,因此阿里巴巴實(shí)時(shí)計(jì)算團(tuán)隊(duì)這兩年也對(duì)Flink進(jìn)行了全面的優(yōu)化、改進(jìn)和功能擴(kuò)展,其中有些功能和改進(jìn)已經(jīng)推回到了Flink社區(qū)。

在FlinkRuntime領(lǐng)域,阿里巴巴貢獻(xiàn)了:

·全新的分布式系統(tǒng)架構(gòu)。一方面對(duì)Flink的Job調(diào)度和資源管理進(jìn)行了解耦,使得Flink可以原生運(yùn)行在YARN,K8S之上;另一方面將Flink的Job調(diào)度從集中式轉(zhuǎn)為了分布式,使得Flink集群規(guī)??梢愿蟮臄U(kuò)展;

·完善的容錯(cuò)機(jī)制。Flink默認(rèn)在任何task和master失敗后,都會(huì)整個(gè)Job 重啟,阿里巴巴提出的region-basedfailover策略以及jobmanagerfailover/ha機(jī)制,讓Flink可以運(yùn)行的更加可靠穩(wěn)定;

·大量的性能優(yōu)化。Flink早期只提供全量Checkpoint機(jī)制,這在阿里巴巴大規(guī)模State場(chǎng)景下無(wú)法正常運(yùn)行,阿里巴巴提出了增量Checkpoint機(jī)制,讓Flink即使在TB級(jí)State場(chǎng)景下也可以高效運(yùn)行;FlinkJob經(jīng)常在內(nèi)部算子或者UDF中訪問(wèn)外部存儲(chǔ)系統(tǒng),例如:mysql,hbase,redis等,一旦出現(xiàn)個(gè)別query被卡住,整個(gè)task就被卡住,并通過(guò)反壓影響到整個(gè)job,阿里巴巴提出了async IO機(jī)制,大幅降低了同步IO訪問(wèn)帶來(lái)的影響。 此外,阿里巴巴貢獻(xiàn)了credit-based的全新網(wǎng)絡(luò)流控機(jī)制,使得Flink網(wǎng)絡(luò)數(shù)據(jù)傳輸性能得到了顯著提升。

在FlinkSQL領(lǐng)域,阿里巴巴貢獻(xiàn)了全新的StreamingSQL語(yǔ)義和功能。例如:AggRetraction,UDX支持,DDL支持和大量的Connector適配。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在阿里巴巴,我們發(fā)現(xiàn)很多經(jīng)典的業(yè)務(wù)場(chǎng)景都是同時(shí)具備實(shí)時(shí)流處理和離線批處理兩種需求,而且流處理和批處理中的業(yè)務(wù)邏輯幾乎是一樣的,但用戶需要開(kāi)發(fā)兩套代碼,兩套集群資源部署,導(dǎo)致額外的成本。例如阿里巴巴的商品搜索索引構(gòu)建流程,白天需要將商品的更新信息流式同步到搜索引擎中,讓用戶可以在搜索引擎中看到實(shí)時(shí)的商品信息,晚上需要將全量的阿里巴巴商品進(jìn)行批處理構(gòu)建全量索引,這就是傳統(tǒng)的Lambda架構(gòu)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

阿里巴巴的解法是希望提供一套批流融合計(jì)算引擎,讓用戶只需開(kāi)發(fā)一套業(yè)務(wù)代碼,就可以在實(shí)時(shí)和離線兩種場(chǎng)景下復(fù)用,這也是在2015年阿里巴巴選擇Flink作為未來(lái)大數(shù)據(jù)引擎的初衷。 Flink基于流處理機(jī)制實(shí)現(xiàn)批流融合相對(duì)Spark基于批處理機(jī)制實(shí)現(xiàn)批流融合的思想更自然,更合理,也更有優(yōu)勢(shì),因此阿里巴巴在基于Flink支持大量核心實(shí)時(shí)計(jì)算場(chǎng)景的同時(shí),也在不斷改進(jìn)Flink的架構(gòu),使其朝著真正批流融合的統(tǒng)一計(jì)算引擎方向前進(jìn)。

在FlinkRuntime領(lǐng)域,阿里巴巴提出了全新的OperatorFramework/API設(shè)計(jì),使其能夠同時(shí)適應(yīng)批流兩種算子特性;同時(shí)在Job調(diào)度和網(wǎng)絡(luò)Shuffle兩種核心機(jī)制上,都實(shí)現(xiàn)了靈活的插件化機(jī)制,使其能夠適應(yīng)批流不同場(chǎng)景的需求。

在FlinkSQL領(lǐng)域,阿里巴巴提出了全新的QueryExecution和Optimizer架構(gòu),利用高效的二級(jí)制數(shù)據(jù)結(jié)構(gòu),更加合理的內(nèi)存利用方式,更細(xì)粒度的Codegen機(jī)制以及更加豐富的優(yōu)化器策略,使得Streaming和BatchSQL都有了非常大的性能提升。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

經(jīng)過(guò)大量架構(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ì)在數(shù)據(jù)量不斷增加的趨勢(shì)下越來(lái)越明顯,這也從結(jié)果上驗(yàn)證了Flink基于流做批的架構(gòu)優(yōu)勢(shì)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

目前,阿里巴巴的內(nèi)部Flink版本(Blink)已經(jīng)開(kāi)始支持內(nèi)部批流融合的應(yīng)用場(chǎng)景,例如阿里巴巴的搜索推薦算法平臺(tái),流式和批量的特征以及訓(xùn)練流程都已經(jīng)統(tǒng)一基于Flink在運(yùn)行。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

蔣曉偉在分享的最后給出了對(duì)Flink未來(lái)的一些展望,他認(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)勢(shì)都在促使基于Flink構(gòu)建微服務(wù)框架成為一種新的思想和解決方案。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

總結(jié)蔣曉偉老師的分享,ApacheFlink過(guò)去雖然在流計(jì)算領(lǐng)域已經(jīng)獲得很大的成功,但Flink并沒(méi)有停滯,而是正在不斷在突破自己的邊界,F(xiàn)link不僅僅是StreamingEngine,也不僅僅是BigdataEngine,未來(lái)更希望努力成為ApplicationEngine。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

  流處理即未來(lái)

接下來(lái)來(lái)自DA(Flink創(chuàng)始公司)的CTO-StephanEwen也對(duì)Flink的發(fā)展趨勢(shì)給出類(lèi)似的觀點(diǎn)。Stephan認(rèn)為“StreamingTakesonEverything”即流處理是一切計(jì)算的基礎(chǔ), Flink一方面需要朝著離線方向發(fā)展,實(shí)現(xiàn)批流融合大數(shù)據(jù)計(jì)算能力,另一方面也需要朝著更加實(shí)時(shí)在線方向發(fā)展,支持Event-Driven Application。前面已經(jīng)重點(diǎn)闡述了Flink在批流融合計(jì)算方面的進(jìn)展,接下來(lái)我們重點(diǎn)介紹下Flink在Event-Driven Application方向的思路。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

傳統(tǒng)的應(yīng)用服務(wù)架構(gòu)一般是OnlineApp+ Database的架構(gòu),OnlineApp負(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中。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

傳統(tǒng)應(yīng)用服務(wù)架構(gòu)需要自己負(fù)責(zé)分布式和彈性管理,并由Database負(fù)責(zé)數(shù)據(jù)一致性管理;而Flink在這兩方面是存在天然優(yōu)勢(shì)的,因?yàn)镕link天然是分布式系統(tǒng),可以自己管理彈性伸縮,此外Flink內(nèi)置了狀態(tài)管理和exactlyonce一致性語(yǔ)義,因此基于Flink可以更方便、高效實(shí)現(xiàn)Transactional Application。

  城市級(jí)實(shí)時(shí)計(jì)算的力量

在ApacheFlink社區(qū)大神StephanEwen的分享后,來(lái)自阿里云的AI首席科學(xué)家閔萬(wàn)里向大家分享了實(shí)時(shí)計(jì)算在阿里云智慧城市中發(fā)揮的力量,通過(guò)分享多個(gè)真實(shí)應(yīng)用案例,讓大家對(duì)實(shí)時(shí)技術(shù)有了更多的體感和認(rèn)識(shí)。

在城市大腦的業(yè)務(wù)場(chǎng)景中,不僅要能實(shí)時(shí)處理來(lái)自各種傳感器收集到的信息,對(duì)現(xiàn)實(shí)世界發(fā)生的事情進(jìn)行響應(yīng),同時(shí)也要對(duì)未來(lái)將要發(fā)生的事情進(jìn)行預(yù)測(cè),例如:接下來(lái)那里可能要發(fā)生交通擁堵,從而提前做出干預(yù),這才是更大的價(jià)值。整個(gè)城市大腦的架構(gòu)都運(yùn)行在阿里云基礎(chǔ)設(shè)施之上,ApacheFlink承擔(dān)了核心實(shí)時(shí)計(jì)算引擎的角色,負(fù)責(zé)處理各種結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在2018年9月的云棲大會(huì)上,阿里云發(fā)布了杭州城市大腦2.0,覆蓋杭州420平方公里,可以監(jiān)控到超過(guò)150萬(wàn)輛在途行駛機(jī)動(dòng)車(chē)的實(shí)況信息,這個(gè)看似簡(jiǎn)單的事情在過(guò)去是很難做到的,現(xiàn)在我們通過(guò)1300多個(gè)路口的攝像頭、傳感器以及高德App的實(shí)時(shí)信息,通過(guò)Flink進(jìn)行三流合一的處理,就可以實(shí)時(shí)感知到整個(gè)城市交通的脈搏信息,并通過(guò)進(jìn)一步分析可以得出延誤、安全等交通指數(shù),預(yù)測(cè)感知城市的態(tài)勢(shì)發(fā)展。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在杭州,城市大腦通過(guò)實(shí)時(shí)分析4000多個(gè)交通攝像頭采集的視頻流,可以實(shí)時(shí)監(jiān)控路上車(chē)輛的異常事件,例如:車(chē)輛超速、逆行和擦碰等,并將這些異常事件實(shí)時(shí)同步到交警指揮中心進(jìn)行實(shí)時(shí)報(bào)警,目前杭州的交通事件報(bào)警已經(jīng)有95%來(lái)自城市大腦自動(dòng)通報(bào)的,這背后都是通過(guò)Flink進(jìn)行各種復(fù)雜的計(jì)算邏輯實(shí)時(shí)算出來(lái)的。實(shí)時(shí)計(jì)算讓交警處理交通故障的方式從過(guò)去的被動(dòng)等待變成了主動(dòng)處理,從而大幅提升城市交通的效率,為老百姓帶來(lái)實(shí)實(shí)在在的好處。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

  這50%,關(guān)乎生死

2018年,城市大腦第一次走出國(guó)門(mén),來(lái)到馬來(lái)西亞吉隆坡,基于實(shí)時(shí)大數(shù)據(jù)對(duì)交通進(jìn)行智能調(diào)度,它可以根據(jù)救護(hù)車(chē)的行駛信息,以及沿途路況信息,智能調(diào)整紅綠燈,為救護(hù)車(chē)開(kāi)辟綠色快速通道,這項(xiàng)技術(shù)為救護(hù)車(chē)節(jié)省了近50%的時(shí)間到達(dá)醫(yī)院,這50%的時(shí)間可能意味著人的生和死,在這里技術(shù)顯得不再骨感,實(shí)時(shí)計(jì)算的力量也許可以挽救生命。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在工業(yè)生產(chǎn)IOT場(chǎng)景中,大量設(shè)備的傳感器都收集了海量的指標(biāo)數(shù)據(jù),這些信息過(guò)去都被暫存2個(gè)月后丟棄了,唯一的用途就是在出現(xiàn)生產(chǎn)故障時(shí)拿來(lái)分析用,在有了大數(shù)據(jù)實(shí)時(shí)計(jì)算能力后,這些指標(biāo)都可以被實(shí)時(shí)監(jiān)控起來(lái),作為及時(shí)調(diào)控生產(chǎn)流程的依據(jù)。協(xié)鑫光伏是全球最大的光伏切片企業(yè),阿里云利用實(shí)時(shí)設(shè)備監(jiān)控,幫助其提高了1%的良品率,每年可以增加上億元的收入。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

  滴滴實(shí)時(shí)計(jì)算平臺(tái)架構(gòu)與實(shí)踐

Keynote最后一位嘉賓是來(lái)自滴滴出行的研究員羅李,大家都知道滴滴出行是一個(gè)實(shí)時(shí)出行平臺(tái)和交易引擎,它的數(shù)據(jù)和場(chǎng)景天然是實(shí)時(shí)的,各種網(wǎng)約車(chē)服務(wù)產(chǎn)生的數(shù)據(jù)都需要實(shí)時(shí)處理和分析。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

滴滴的實(shí)時(shí)業(yè)務(wù)場(chǎng)景主要包括實(shí)時(shí)風(fēng)控、實(shí)時(shí)發(fā)券、實(shí)時(shí)異常檢測(cè),實(shí)時(shí)交易、服務(wù)和工單監(jiān)控,以及實(shí)時(shí)乘客、司機(jī)和訂單特征處理等。

滴滴實(shí)時(shí)計(jì)算平臺(tái)發(fā)展已經(jīng)經(jīng)歷了三個(gè)階段,第一階段是各個(gè)業(yè)務(wù)方自建小集群,造成集群和資源碎片化問(wèn)題;第二階段由公司統(tǒng)一建立了大集群,提供統(tǒng)一的平臺(tái)化服務(wù),降低了集群資源和維護(hù)成本;第三階段是通過(guò)FlinkSQL方式提供平臺(tái)化服務(wù),通過(guò)SQL語(yǔ)言優(yōu)勢(shì)進(jìn)一步降低業(yè)務(wù)開(kāi)發(fā)成本,提升開(kāi)發(fā)效率。

滴滴現(xiàn)階段基于ApacheFlink引擎建設(shè)的實(shí)時(shí)計(jì)算平臺(tái)以開(kāi)源的Hadoop技術(shù)體系作為平臺(tái)底座,并通過(guò)DataStream, SQL和CEP三種API向滴滴內(nèi)部業(yè)務(wù)提供實(shí)時(shí)計(jì)算服務(wù),同時(shí)在平臺(tái)層也已經(jīng)具備相對(duì)完善的WebIDE、數(shù)據(jù)血緣管理、監(jiān)控報(bào)警和多組合隔離等機(jī)制。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

在滴滴實(shí)時(shí)業(yè)務(wù)的快速發(fā)展推動(dòng)下,其實(shí)時(shí)計(jì)算集群已經(jīng)達(dá)到千臺(tái)規(guī)模,每天運(yùn)行2000+流計(jì)算任務(wù),可以處理PB級(jí)的數(shù)據(jù)。

滴滴在搭建Flink實(shí)時(shí)計(jì)算平臺(tái)的過(guò)程中,在內(nèi)部也對(duì)Flink做了一些改進(jìn),例如在 StreamSQL領(lǐng)域擴(kuò)展了DDL,豐富了 UDF,支持了TTL的雙流Join和維表Join等;在CEP領(lǐng)域,增加了更多算子支持和規(guī)則動(dòng)態(tài)修改能力等,其中部分優(yōu)化已經(jīng)推回了社區(qū)。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

最后,羅李介紹了滴滴實(shí)時(shí)計(jì)算平臺(tái)的未來(lái)規(guī)劃,主要方向在于進(jìn)一步推廣StreamSQL提升業(yè)務(wù)開(kāi)發(fā)效率,推動(dòng)CEP在更多業(yè)務(wù)場(chǎng)景落地,同時(shí)完成公司內(nèi)部原有SparkStreaming向Flink的遷移,并發(fā)力IOT領(lǐng)域。

在下午的幾個(gè)分會(huì)場(chǎng)中,來(lái)自阿里巴巴、騰訊、華為、滴滴、美團(tuán)點(diǎn)評(píng)、字節(jié)跳動(dòng)、愛(ài)奇藝、去哪兒、Uber、EMC、DA(Flink創(chuàng)始公司)的多位嘉賓和講師都圍繞Flink技術(shù)生態(tài)和應(yīng)用場(chǎng)景進(jìn)行了分享和交流。從分享的內(nèi)容上可以看出,BAT三家中阿里巴巴和騰訊都已經(jīng)完全擁抱了Flink;美團(tuán)、滴滴和字節(jié)跳動(dòng)(TMD)三家新興互聯(lián)網(wǎng)企業(yè)在實(shí)時(shí)計(jì)算場(chǎng)景也都已經(jīng)以Flink作為主流技術(shù)方向開(kāi)始建設(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)超過(guò)了1w臺(tái)規(guī)模 。

Apache Flink,流計(jì)算?不僅僅是流計(jì)算!

由此可見(jiàn)ApacheFlink的技術(shù)理念已經(jīng)在業(yè)界得到了大量認(rèn)可,基于Flink的實(shí)時(shí)計(jì)算解決方案開(kāi)始在國(guó)內(nèi)占據(jù)主流趨勢(shì)。下一步Flink需要一方面繼續(xù)完善流計(jì)算能力,爭(zhēng)取在IOT等更多場(chǎng)景落地,與此同時(shí)進(jìn)一步加強(qiáng)在批流融合能力上的全面突破,并完善在機(jī)器學(xué)習(xí)和AI生態(tài)上的建設(shè),以及在event-driven的application和微服務(wù)場(chǎng)景上進(jìn)行更長(zhǎng)遠(yuǎn)的探索。

最后期待明年在下一屆FlinkForwardChina上,會(huì)有更多國(guó)內(nèi)外公司來(lái)分享Flink技術(shù),展示出更加豐富的應(yīng)用場(chǎng)景和案例,讓我們看到一個(gè)更加枝繁葉茂的ApacheFlink生態(tài)系統(tǒng)。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2019-01-03
Apache Flink,流計(jì)算?不僅僅是流計(jì)算!
作者:王峰(花名:莫問(wèn))阿里巴巴 資深技術(shù)專(zhuān)家摘要:FlinkForwardChina 主要講了啥,看這一篇文章就夠了2018年12月20日,由阿里巴巴集團(tuán)主辦

長(zhǎng)按掃碼 閱讀全文