官方剧透:1.11 发版前我们偷看了 Flink 中文社区发起人的聊天记录
Flink 1.11 即將 Release 啦!
作為備受矚目的新一代開源大數(shù)據(jù)計(jì)算引擎,Flink 無疑已成為 Apache 基金會(huì)和 GitHub 最為活躍的項(xiàng)目之一。
自 2014 年正式開源, Flink 發(fā)展非常迅速,在 GitHub 上其訪問量在 Apache 項(xiàng)目中位居前三。去年年底 Flink Forward Asia 2019 大會(huì)公布,僅僅 2019 年一年的時(shí)間,Flink 在 GitHub 上的 star 數(shù)量就翻了一倍,Contributor 數(shù)量也呈現(xiàn)出持續(xù)增長的態(tài)勢。
GitHub 地址指路:
https://github.com/apache/flink
越來越多的企業(yè)和開發(fā)者正在不斷地加入 Flink 社區(qū),中國開發(fā)者也為 Flink 開發(fā)做出了巨大的貢獻(xiàn)。最近,Flink 終于要迎來1.11版本的更新,不僅對(duì) SQL 和 PyFlink 的支持進(jìn)行了優(yōu)化,還有 Hive 的兼容性,以及增強(qiáng)了拓展資源(GPU)的調(diào)度支持。
將在6月下旬發(fā)版的的 Flink 1.11 重要功能特性更新如下:(目前已在官方文檔更新)
- 增強(qiáng) Web UI 功能
- 全新 Source API
- DataStream API 支持 Kafka 載體實(shí)現(xiàn)子圖 Failover
- 提升 DDL 易用性(動(dòng)態(tài) Table 屬性,Primary Key支持)
- 增強(qiáng) Hive 流批一體化(Hive Streaming sink,Filesystem Connector)
- 支持被 Zeppelin 集成,所有發(fā)布功能可用
- 增強(qiáng) PyFlink(Pandas支持,SQL DDL/Client集成),提升 Python UDF 性能
- 支持 Application 運(yùn)行模式、增強(qiáng) K8s 功能以及 Docker 鏡像統(tǒng)一
- 統(tǒng)一 Job Master 內(nèi)存配置
- 支持 GPU 調(diào)度
- 調(diào)整 Savepoint 文件路徑方便移動(dòng)
- Runtime 實(shí)現(xiàn) Unalinged 模式提速反壓場景下 Checkpoint
Flink 1.11 版本更新之際,大數(shù)據(jù)文摘跟阿里巴巴資深技術(shù)專家,實(shí)時(shí)計(jì)算負(fù)責(zé)人,也是 Flink 中文社區(qū)發(fā)起人王峰 (莫問)聊了聊,關(guān)于 Flink 此次新版的重點(diǎn),以及未來社區(qū)的發(fā)展規(guī)劃,莫問老師都給了我們一波官方劇透。
Flink 版本更新:上百萬行代碼
1.11版本是 Flink 在版本上的重要更迭,更新代碼就有上百萬行。
總的來說,這次的新版本有以下幾個(gè)重要更新:
增加支持 Python 的 UDF
PyFlink 在 Flink 的生態(tài)中非常重要,因?yàn)?Flink 的開發(fā)者也大多會(huì)使用Java、SQL、Python 語言。在最新版本1.11中,增加了支持 Python 的 UDF,這樣當(dāng) Python 開發(fā)者用 Flink 去開發(fā)一個(gè)完整的流計(jì)算項(xiàng)目時(shí),就可以方便地處理數(shù)據(jù)。
同時(shí),在 AI 項(xiàng)目開發(fā)中,有些工程師也喜歡用 Python 處理數(shù)據(jù),所以計(jì)算團(tuán)隊(duì)必須要為 Flink 的使用者考慮,讓所有開發(fā)者都能更好地使用 Flink。
進(jìn)一步改進(jìn) SQL 的易用性
在1.9版本之前,Flink 社區(qū)用戶使用最多的還是基于 Java 的 DataStream API,而 Table 和 SQL 還處于早期探索的階段。在過去的兩個(gè)大版本(1.9和1.10),Flink 社區(qū)花了非常大的代價(jià)將 Table 和 SQL 做了完整的重構(gòu),加入了在阿里集團(tuán)服務(wù)多年的 Blink planner,讓 Table 和 SQL 做到了真正的生產(chǎn)可用。
從1.11版本開始,Blink planner 將會(huì)變成 SQL 的默認(rèn)優(yōu)化器。同時(shí),社區(qū)也收集了過去幾個(gè)版本中用戶對(duì) SQL 功能和易用性的反饋,做了大量的改進(jìn)工作。比如呼聲非常高的讓 Flink SQL 能夠直接解析數(shù)據(jù)庫的 Binlog 日志(如 Debezium、Canal),以及更簡潔的 DDL 寫法,在查詢語句中動(dòng)態(tài)修改 table 參數(shù)等等。通過社區(qū)不斷完善,相信 Flink SQL 除了在核心能力一直保持優(yōu)越之外,也能夠讓廣大用戶覺得越來越好用,做到真正降低流計(jì)算業(yè)務(wù)的門檻。
加強(qiáng) AI 方向的場景應(yīng)用
Flink 社區(qū)一直在加強(qiáng) AI 場景應(yīng)用的功能。AI 這些年一直是一個(gè)非常流行的領(lǐng)域,包括大家熟知的 TensorFlow 還有 PyTorch,都是用戶經(jīng)常使用的平臺(tái)。AI 未來會(huì)應(yīng)用在各種場景中,比如數(shù)據(jù)分析、監(jiān)控模型等。莫問稱,新版本會(huì)積極為 AI 各種場景提供更強(qiáng)大的批流融合的數(shù)據(jù)處理能力,讓用戶能更好地進(jìn)行數(shù)據(jù)清洗、特征提取、樣本生成,以及預(yù)測模型的框架構(gòu)建。
此外,Flink 可以提供傳統(tǒng)機(jī)器學(xué)習(xí)模型的訓(xùn)練,比如貝葉斯、SVM、隨機(jī)森林這類的模型計(jì)算,以及 Alink 提供的其它種類機(jī)器學(xué)習(xí)模型。未來,Flink 社區(qū)會(huì)繼續(xù)提供關(guān)于 Flink 流式計(jì)算框架的迭代,不斷提升傳統(tǒng)機(jī)器學(xué)習(xí)算法的能力,增加算法種類。
目前 AI 行業(yè)缺少一整套工具鏈,來實(shí)現(xiàn)從數(shù)據(jù)處理、訓(xùn)練模型再到整體上線的完整流程。即之前提及的 Flink AI Flow,Flink 將聯(lián)合 TensorFlow、Kubernetes,和 AirFlow 這些開源技術(shù),進(jìn)行整合形成一套完整的工具。當(dāng)用戶想要使用深度學(xué)習(xí)模型訓(xùn)練時(shí)可以使用 TensorFlow,想用傳統(tǒng)學(xué)習(xí)算法時(shí)可以用 Flink ML Lib 或 Alink,Flink AI 會(huì)通過開源技術(shù)使用戶都能獲得這樣的體驗(yàn),減少切換工具的不便。
與離線大數(shù)據(jù)系統(tǒng)的集成
雖然大數(shù)據(jù)實(shí)時(shí)化是大家公認(rèn)的趨勢,但同時(shí)不可否認(rèn)的是,還是有非常多的公司還處在離線大數(shù)據(jù)系統(tǒng)的建設(shè)之中。如何幫助這部分用戶順暢的將離線數(shù)據(jù)鏈路進(jìn)行實(shí)時(shí)化升級(jí)改造,也是 Flink 社區(qū)一直在追求的目標(biāo)。
Flink 1.11 版本在之前兼容 Hive Meta、數(shù)據(jù)格式、自定義函數(shù)的基礎(chǔ)之上,還新加入了實(shí)時(shí)讀寫 Hive 數(shù)據(jù),支持將 Hive 數(shù)據(jù)作為維表,以及 Hive 部分 DDL 和 DML 的兼容性。這樣一來,用戶可以在 Flink SQL CLI 上直接使用 Hive 方言的 DDL 和 DML 語句,同時(shí)還可以使用 Flink 將數(shù)據(jù)實(shí)時(shí)的寫入 Hive。在此基礎(chǔ)之上,Flink 還可以自動(dòng)監(jiān)聽 Hive 數(shù)據(jù)表,當(dāng)有新的 partition 和數(shù)據(jù)出現(xiàn)的時(shí)候,能夠自動(dòng)進(jìn)行讀取并處理。所有的這一切操作,都不影響原來的離線鏈路。有了這些功能之后,用戶可以完全在一個(gè) Hive 的基礎(chǔ)設(shè)施之上,搭建出適合自己業(yè)務(wù)需求的準(zhǔn)實(shí)時(shí)鏈路,將原來天級(jí)或者小時(shí)級(jí)的端到端延遲,縮短到比如10分鐘的量級(jí)。
除了 Hive 之外,現(xiàn)在市面上也有許多新興的存儲(chǔ)(如 Delta、Iceberg、Hudi)可以做到類似的效果。比如像數(shù)據(jù)湖架構(gòu),這種新的數(shù)據(jù)湖存儲(chǔ)的架構(gòu)都是流批一體的存儲(chǔ)架構(gòu),增量視圖可以看到數(shù)據(jù)的變化,可以用不同的增量視圖來處理數(shù)據(jù),也可以全量視圖來處理數(shù)據(jù),還可以把云計(jì)算的存儲(chǔ)中心或者 HDFS 中的所有數(shù)據(jù)都共享到數(shù)據(jù)湖,用戶就可以使用計(jì)算引擎實(shí)時(shí)處理數(shù)據(jù),也可以去批量的處理數(shù)據(jù),還能準(zhǔn)實(shí)時(shí)的處理數(shù)據(jù)。
Flink 提供流批一體的計(jì)算能力,未來和這些流批一體的存儲(chǔ)進(jìn)行有機(jī)的結(jié)合之后,將進(jìn)一步幫助用戶簡化系統(tǒng)架構(gòu),提升業(yè)務(wù)支持的效率。
“選擇往往比努力更重要”:Flink 在阿里的成長史
“選擇往往比努力更重要。”回憶起阿里選擇 Flink 的過程,莫問到現(xiàn)在依然感慨萬千。
2015年,阿里搜索算法團(tuán)隊(duì)遇到了一個(gè)問題:整個(gè)淘寶和天貓的商品都需要實(shí)時(shí)更新到在線的搜索和推薦引擎中,以及要根據(jù)用戶在線行為進(jìn)行實(shí)時(shí)個(gè)性化的搜索排序和推薦,這么大規(guī)模的計(jì)算量,應(yīng)該如何解決?
在面臨巨大挑戰(zhàn)的業(yè)務(wù)需求大背景下,阿里搜索團(tuán)隊(duì)迫切需要找到一個(gè)能承受巨大計(jì)算量并且實(shí)時(shí)化的計(jì)算引擎。當(dāng)時(shí)的他們有三個(gè)方向可以選擇:Apache Storm,Apache Spark,以及 Apache Flink。通過綜合多方面因素的權(quán)衡和判斷,莫問的團(tuán)隊(duì)最終選擇了 Flink 作為實(shí)時(shí)計(jì)算引擎。作為一個(gè)14年才進(jìn)入 Apache 的年輕項(xiàng)目,當(dāng)時(shí)的 Flink 是如何吸引了阿里搜索團(tuán)隊(duì)的注意?
莫問告訴我們,團(tuán)隊(duì)首先看中的是 Flink 的架構(gòu)設(shè)計(jì),尤其是作為一個(gè)純流式思想來做大數(shù)據(jù)處理,不僅可以基于 Kappa 結(jié)構(gòu)來做流式數(shù)據(jù)處理,還可以以流為核心做批流融合的計(jì)算能力。
花了一年的時(shí)間,阿里團(tuán)隊(duì)對(duì) Flink 早期版本做了不少優(yōu)化和增強(qiáng),2016 年雙11就在阿里搜索和推薦場景上線了。由于是第一次在雙十一場景里嘗試新框架,搜索團(tuán)隊(duì)也不太確定這個(gè) Flink 究竟能否承受住阿里的大規(guī)模計(jì)算量。讓莫問都沒想到的是,16年雙11,Flink 的表現(xiàn)非常穩(wěn)定,這一點(diǎn)已經(jīng)超過了搜索團(tuán)隊(duì)的預(yù)期,甚至比當(dāng)時(shí)阿里在用的幾款流計(jì)算引擎方案表現(xiàn)的還要好,潛力十足。
也正是通過這次穩(wěn)定的表現(xiàn),整個(gè)阿里集團(tuán)也對(duì) Flink 的性能有了一定的信心,希望在這個(gè)框架的基礎(chǔ)上,統(tǒng)一所有的流式實(shí)時(shí)計(jì)算技術(shù)方案。之后也正如我們所見,阿里集團(tuán)頂住了包括雙十一、618 等全年不斷的大大小小促銷活動(dòng)。
有了這些成功的經(jīng)驗(yàn),阿里也對(duì) Flink 有了更大信心,不僅支持整個(gè)阿里集團(tuán)的實(shí)時(shí)計(jì)算,還在阿里云上開始對(duì)外提供基于 Flink 的實(shí)時(shí)計(jì)算產(chǎn)品服務(wù)。發(fā)展至今,該產(chǎn)品已經(jīng)持續(xù)為 500 多家知名企業(yè)提供實(shí)時(shí)計(jì)算的保障。
“希望 Flink 社區(qū)更繁榮,更多元化”
“希望 Flink 社區(qū)更繁榮,更多元化。“
莫問告訴我們,阿里一直強(qiáng)調(diào)團(tuán)隊(duì)的初衷不是希望阿里來控制 Flink 社區(qū),而是希望阿里為 Flink 社區(qū)作出更多貢獻(xiàn),帶動(dòng)Flink社區(qū)的快速發(fā)展,同時(shí)吸引更多的公司和開發(fā)者加入到 Flink 社區(qū)中來,實(shí)現(xiàn)社區(qū)的多元化,讓 Flink 技術(shù)能夠服務(wù)到更多行業(yè)和場景。
“所以我們會(huì)把阿里內(nèi)部對(duì) Flink 一些比較合適的改進(jìn)和優(yōu)化都貢獻(xiàn)到社區(qū)中,讓更多公司能夠受益,也非常希望看到其他公司也能夠?qū)?Flink 在自己的場景進(jìn)行大規(guī)模的應(yīng)用,并將各自的需求和改進(jìn)都貢獻(xiàn)給 Flink 社區(qū),通過社區(qū)共建相互受益。”
2019年阿里巴巴收購 Flink 商業(yè)公司 Ververica 后,投入了大量的精力發(fā)展社區(qū):在來自阿里的 PMC(項(xiàng)目管理委員會(huì))成員提議和推動(dòng)下,Apache Flink 社區(qū)建立了中文郵件列表、組織萬人群熱烈討論 Flink 問題、聯(lián)合 30 余家公司共同舉辦 Flink Meetup 20+場、引入 Flink 國際盛會(huì) Flink Forward 、持續(xù)輸出免費(fèi)的 Flink 學(xué)習(xí)教程以降低 Flink 入門門檻。
截止2020年5月,共有674位開發(fā)者加入 Apache Flink 社區(qū)成為 Contributor。Contributor 的名單里不乏來自阿里巴巴、騰訊、字節(jié)跳動(dòng)、奇虎360、網(wǎng)易、OPPO、小米、快手、小紅書、亞信科技、唯品會(huì)等國內(nèi)知名企業(yè)的工程師們。不僅有越來越多來自企業(yè)的開發(fā)者,也有更多高校學(xué)生、IC 成為 Apache Flink Contributor。在 Committer 方面,除了阿里之外,Flink 社區(qū)也不乏來自騰訊和頭條的資深開發(fā)者受邀成為項(xiàng)目的 Committer。他們也非常積極的在社區(qū)分享各自公司內(nèi)部的使用場景,并對(duì) Flink 內(nèi)核代碼進(jìn)行持續(xù)的完善和改進(jìn)。
Flink 社區(qū)需要更多的資源去推動(dòng)社區(qū)的進(jìn)步,阿里也希望能看到社區(qū)生態(tài)的繁榮和生態(tài)化。
Flink 的未來:做什么?
提到未來 Flink 社區(qū)的研發(fā)方向,莫問告訴我們,社區(qū)目前正在專注以下三個(gè)方向:
首先,推進(jìn)實(shí)時(shí)和準(zhǔn)實(shí)時(shí)數(shù)據(jù)處理的進(jìn)一步融合。使得 Flink 不僅能夠毫秒級(jí)的處理流式數(shù)據(jù),同時(shí)也能夠?qū)τ邢迶?shù)據(jù)集進(jìn)行快速分析、處理和更新,為用戶提供端到端的實(shí)時(shí)化數(shù)據(jù)分析體驗(yàn)。
其次,提供大數(shù)據(jù)和 AI 全鏈路流程端到端的完整體驗(yàn),AI 場景離不開大數(shù)據(jù)計(jì)算和處理能力。例如經(jīng)典的 AI 包括數(shù)據(jù)的預(yù)處理、特征、樣本計(jì)算和模型訓(xùn)練等,Flink 可以結(jié)合 Tensorflow,Airflow,Kubeflow 等技術(shù),提供一套完整流程管理方案去串聯(lián)這其中的各個(gè)環(huán)節(jié)。
第三,Stateful Function,利用 Flink 在 Event Driven 和 Stateful Computing 上的優(yōu)勢,使得 Flink 成為一款在線函數(shù)計(jì)算框架,讓 Flink 從實(shí)時(shí)向在線計(jì)算演進(jìn)。
未來已來,將成熟穩(wěn)定的技術(shù)貢獻(xiàn)給社區(qū),共建良好社區(qū)生態(tài)才能真正的讓用戶放心使用,從用戶角度出發(fā),為用戶的需求考慮,才能最終獲得一個(gè)用戶喜歡的 Flink 計(jì)算引擎。攜手伙伴持續(xù)發(fā)展 Flink 社區(qū),讓所有的用戶用上最好的技術(shù),這就是阿里一直想做的事情。
原文鏈接:https://developer.aliyun.com/article/766700?
版權(quán)聲明:本文中所有內(nèi)容均屬于阿里云開發(fā)者社區(qū)所有,任何媒體、網(wǎng)站或個(gè)人未經(jīng)阿里云開發(fā)者社區(qū)協(xié)議授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式復(fù)制發(fā)布/發(fā)表。申請(qǐng)授權(quán)請(qǐng)郵件developerteam@list.alibaba-inc.com,已獲得阿里云開發(fā)者社區(qū)協(xié)議授權(quán)的媒體、網(wǎng)站,在轉(zhuǎn)載使用時(shí)必須注明"稿件來源:阿里云開發(fā)者社區(qū),原文作者姓名",違者本社區(qū)將依法追究責(zé)任。 如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,歡迎發(fā)送郵件至:developer2020@service.aliyun.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的官方剧透:1.11 发版前我们偷看了 Flink 中文社区发起人的聊天记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度揭秘!蚂蚁业务自定义监控大盘是怎么设
- 下一篇: 一文读懂人类信息存储进化史