在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

阿里巴巴內部Flink版本Blink正式開源

電子工程師 ? 來源:cc ? 2019-02-11 08:42 ? 次閱讀

如同我們去年12月在 Flink Forward China 峰會所約,阿里巴巴內部 Flink 版本Blink 將于2019 年 1 月底正式開源。今天,我們終于等到了這一刻。

阿里資深技術專家大沙,將為大家詳細介紹本次開源的Blink主要功能和優化點,希望與業界同仁共同攜手,推動Flink社區進一步發展。

Blink簡介

ApacheFlink是德國柏林工業大學的幾個博士生和研究生從學校開始做起來的項目,早期叫做Stratosphere。2014年,StratoSphere項目中的核心成員從學校出來開發了Flink,同時將Flink計算的主流方向定位為流計算,并在同年將Flink捐贈Apache,后來快速孵化成為Apache的頂級項目。現在Flink是業界公認的最好的大數據流計算引擎。

阿里巴巴在2015年開始嘗試使用Flink。但是阿里的業務體量非常龐大,挑戰也很多。彼時的Flink不管是規模還是穩定性尚未經歷實踐,成熟度有待商榷。為了把這么大的業務體量支持好,我們不得不在Flink之上做了一系列的改進,所以阿里巴巴維護了一個內部版本的Flink,它的名字叫做Blink。

基于Blink的計算平臺于2016年正式上線。截至目前,阿里絕大多數的技術部門都在使用Blink。Blink一直在阿里內部錯綜復雜的業務場景中鍛煉成長著。對于內部用戶反饋的各種性能、資源使用率、易用性等諸多方面的問題,Blink都做了針對性的改進。雖然現在Blink在阿里內部用的最多的場景主要還是在流計算,但是在批計算場景也有不少業務上線使用了。例如,在搜索和推薦算法業務平臺中,它使用Blink同時進行流計算和批處理。Blink被用來實現了流批一體化的樣本生成和特征抽取這些流程,能夠處理的特征數達到了數千億,而且每秒鐘處理數億條消息。在這個場景的批處理中,我們單個作業處理的數據量已經超過400T,并且為了節省資源,我們的批處理作業是和流計算作業以及搜索的在線引擎運行在同樣的機器上。所以大家可以看到流批一體化已經在阿里巴巴取得了極大的成功,我們希望這種成功和阿里巴巴內部的經驗都能夠帶回給社區。

Blink開源的背景

其實從我們選擇Flink的第一天開始我們就一直和社區緊密合作。過去的這幾年我們也一直在把阿里對Flink 的改進推回社區。從2016年開始我們已經將流計算SQL的大部分功能,針對runtime的穩定性和性能優化做的若干重要設計都推回了社區。但是Blink本身發展迭代的速度非常快,而社區有自己的步伐,很多時候可能無法把我們的變更及時推回去。對于社區來說,一些大的功能和重構,需要達成共識后,才能被接受,這樣才能更好地保證開源項目的質量,但是同時就會導致推入的速度變得相對較慢。經過這幾年的開發迭代,我們這邊和社區之間的差距已經變得比較大了。

Blink有一些很好的新功能,比如性能優越的批處理功能,在社區的版本是沒有的。在過去這段時間里,我們不斷聽到有人在詢問Blink的各種新功能。期望Blink盡快開源的呼聲越來越大。我們一直在思考如何開源的問題,一種方案就是和以前一樣,繼續把各種功能和優化分解,逐個和社區討論,慢慢地推回Flink。但這顯然不是大家所期待的。另一個方案,就是先完整的盡可能的多的把代碼開源,讓社區的開發者能夠盡快試用起來。第二個方案很快收到社區廣大用戶的支持。因此,從2018年年中開始我們就開始做開源的相關準備。經過半年的努力,我們終于把大部分Blink的功能梳理好,開源了出來。

Blink開源的方式

我們把代碼貢獻出來,是為了讓大家能先嘗試一些他們感興趣的功能。Blink永遠不會單獨成為一個獨立的開源項目來運作,他一定是Flink的一部分。開源后我們期望能找到辦法以最快的方式將Blink merge到Flink中去。Blink開源只有一個目的,就是希望 Flink 做得更好。Apache Flink 是一個社區項目,Blink以什么樣的形式進入 Flink 是最合適的,怎么貢獻是社區最希望的方式,我們都要和社區一起討論。

在過去的一段時間內,我們在Flink社區征求了廣泛的意見,大家一致認為將本次開源的Blink代碼作為Flink的一個branch直接推回到ApacheFlink項目中是最合適的方式。并且我們和社區也一起討論規劃出一套能夠快速mergeBlink到Flink master中的方案(具體細節可以查看Flink社區正在討論的FLIP32)。我們期望這個merge能夠在很短的時間內完成。這樣我們之后的Machine Learning等其他新功能就可以直接推回到Flink master。相信用不了多久,Flink 和 Blink 就完全合二為一了。在那之后,阿里巴巴將直接使用Flink用于生產,并同時協助社區一起來維護Flink。

本次開源的Blink的主要功能和優化點

本次開源的Blink代碼在Flink1.5.1版本之上,加入了大量的新功能,以及在性能和穩定性上的各種優化。主要貢獻包括,阿里巴巴在流計算上積累的一些新功能和性能的優化,一套完整的(能夠跑通全部TPC-H/TPC-DS,能夠讀取Hive meta和data)高性能Batch SQL,以及一些以提升易用性為主的功能(包括支持更高效的interactive programming, 與zeppelin更緊密的結合, 以及體驗和性能更佳的Flink web)。未來我們還將繼續給Flink貢獻在AIIoT以及其他新領域的功能和優化。更多的關于這一版本Blink release的細節,請參考Blink代碼根目錄下的README.md文檔。下面,我來分模塊介紹下Blink主要的新的功能和優化點。

Runtime

為了更好的支持batch processing,以及解決阿里巴巴大規模生產場景中遇到的各種挑戰,Blink對Runtime架構、效率、穩定性方面都做了大量改進。在架構方面,首先Blink引入了Pluggable ShuffleArchitecture,開發者可以根據不同的計算模型或者新硬件的需要實現不同的shuffle策略進行適配。此外Blink還引入新的調度架構,容許開發者根據計算模型自身的特點定制不同調度器。為了優化性能,Blink可以讓算子更加靈活的chain在一起,避免了不必要的數據傳輸開銷。在Pipeline Shuffle模式中,使用了ZeroCopy減少了網絡層內存消耗。在BroadCast Shuffle模式中,Blink優化掉了大量的不必要的序列化和反序列化開銷。

此外,Blink提供了全新的JM FailOver機制,JM發生錯誤之后,新的JM會重新接管整個JOB而不是重啟JOB,從而大大減少了JM FailOver對JOB的影響。最后,Blink也開發了對Kubernetes的支持。不同于Standalone模式在Kubernetes上的拉起方式,在基于Flink FLIP6的架構上基礎之上,Blink根據job的資源需求動態的申請/釋放Pod來運行TaskExecutor,實現了資源彈性,提升了資源的利用率。

SQL/TableAPI

SQL/TableAPI架構上的重構和性能的優化是Blink本次開源版本的一個重大貢獻。首先,我們對SQL engine的架構做了較大的調整。提出了全新的Query Processor(QP), 它包括了一個優化層(Query Optimizer)和一個算子層(Query Executor)。這樣一來,流計算和批計算的在這兩層大部分的設計工作就能做到盡可能的復用。

另外,SQL和TableAPI的程序最終執行的時候將不會翻譯到DataStream和DataSet這兩個API上,而是直接構建到可運行的DAG上來,這樣就使得物理執行算子的設計不完全依賴底層的API,有了更大的靈活度,同時執行代碼也能夠被靈活的codegen出來。唯一的一個影響就是這個版本的SQL和TableAPI不能和DataSet這個API進行互相轉換,但仍然保留了和DataStream API互相轉換的能力(將DataStream注冊成表,或將Table轉成DataStream后繼續操作)。未來,我們計劃把dataset的功能慢慢都在DataStream和TableAPI上面實現。到那時DataStream和SQL以及tableAPI一樣,是一個可以同時描述bounded以及unbounded processing的API。

除了架構上的重構,Blink還在具體實現上做了較多比較大的重構。首先,Blink引入了二進制的數據結構BinaryRow,極大的減少了數據存儲上的開銷以及數據在序列化和反序列化上計算的開銷。其次,在算子的實現層面,Blink在更廣范圍內引入了CodeGen技術。由于預先知道算子需要處理的數據的類型,在QP層內部就可以直接生成更有針對性更高效的執行代碼。

Blink的算子會動態的申請和使用資源,能夠更好的利用資源,提升效率,更加重要的是這些算子對資源有著比較好的控制,不會發生OutOfMemory 的問題。此外,針對流計算場景,Blink加入了miniBatch的執行模式,在aggregate、join等需要和state頻繁交互且往往又能先做部分reduce的場景中,使用miniBatch能夠極大的減少IO,從而成數量級的提升性能。除了上面提到的這些重要的重構和功能點,Blink還實現了完整的SQL DDL,帶emit策略的流計算DML,若干重要的SQL功能,以及大量的性能優化策略。

有了上面提到的諸多架構和實現上的重構。Blink的SQL/tableAPI在功能和性能方面都取得了脫胎換骨的變化。在批計算方面,首先Blinkbatch SQL能夠完整的跑通TPC-H和TPC-DS,且性能上有著極大的提升。如上圖所示,是這次開源的Blink版本和spark 2.3.1的TPC-DS的benchmark性能對比。柱狀圖的高度代表了運行的總時間,高度越低說明性能越好。可以看出,Blink在TPC-DS上和Spark相比有著非常明顯的性能優勢。而且這種性能優勢隨著數據量的增加而變得越來越大。在實際的場景這種優勢已經超過 Spark的三倍。在流計算性能上我們也取得了類似的提升。我們線上的很多典型作業,它的性能是原來的3到5倍。在有數據傾斜的場景,以及若干比較有挑戰的TPC-H query,流計算性能甚至得到了數十倍的提升。

除了標準的Relational SQL API。TableAPI在功能上是SQL的超集,因此在SQL上所有新加的功能,我們在tableAPI也添加了相對應的API。除此之外,我們還在TableAPI上引入了一些新的功能。其中一個比較重要是cache功能。在批計算場景下,用戶可以根據需要來cache計算的中間結果,從而避免不必要的重復計算。它極大的增強了interactiveprogramming體驗。我們后續會在tableAPI上添加更多有用的功能。其實很多新功能已經在社區展開討論并被社區接受,例如我們在tableAPI增加了對一整行操作的算子map/flatMap/aggregate/flatAggregate(FlinkFLIP29)等等。

Hive的兼容性

我們這次開源的版本實現了在元數據(meta data)和數據層將Flink和Hive對接和打通。國內外很多公司都還在用 Hive 在做自己的批處理。對于這些用戶,現在使用這次Blink開源的版本,就可以直接用Flink SQL去查詢Hive的數據,真正能夠做到在Hive引擎和Flink引擎之間的自由切換。

為了打通元數據,我們重構了Flink catalog的實現,并且增加了兩種catalog,一個是基于內存存儲的FlinkInMemoryCatalog,另外一個是能夠橋接Hive metaStore的HiveCatalog。有了這個HiveCatalog,Flink作業就能讀取Hive的metaData。為了打通數據,我們實現了HiveTableSource,使得Flink job可以直接讀取Hive中普通表和分區表的數據。因此,通過這個版本,用戶可以使用Flink SQL讀取已有的Hive meta和data,做數據處理。未來我們將在Flink上繼續加大對Hive兼容性的支持,包括支持Hive特有的query,datatype,和Hive UDF等等。

Zeppelin for Flink

為了提供更好的可視化和交互式體驗,我們做了大量的工作讓Zeppelin能夠更好的支持Flink。這些改動有些是在Flink上的,有些是在Zeppelin上的。在這些改動全部推回Flink和Zeppelin社區之前,大家可以使用這個Zeppelin image(具體細節請參考Blink代碼里的docs/quickstart/zeppelin_quickstart.md)來測試和使用這些功能。這個用于測試的Zeppelin版本,首先很好的融合和集成了Flink的多種運行模式以及運維界面。使用文本SQL和tableAPI可以自如的查詢Flink的static table和dynamic table。

此外,針對Flink的流計算的特點,這一版Zeppelin也很好的支持了savepoint,用戶可以在界面上暫停作業,然后再從savepoint恢復繼續運行作業。在數據展示方面,除了傳統的數據分析界面,我們也添加了流計算的翻牌器和時間序列展示等等功能。為了方便用戶試用,我們在這一版zeppelin中提供3個built-in的Flink tutorial的例子: 一個是做StreamingETL的例子, 另外兩個分別是做Flink Batch,Flink Stream的基礎樣例。

Flink Web

我們對Flink Web的易用性與性能等多個方面做了大量的改進,從資源使用、作業調優、日志查詢等維度新增了大量功能,使得用戶可以更方便的對Flink作業進行運維。在資源使用方面,新增了Cluster、TaskManager與Job三個級別的資源信息,使得資源的申請與使用情況一目了然。作業的拓撲關系及數據流向可以追溯至 Operator 級別,Vertex 增加了InQueue,OutQueue等多項指標,可以方便的追蹤數據的反壓、過濾及傾斜情況。TaskManager 和 JobManager 的日志功能得到大幅度加強,從Job、Vertex、SubTask 等多個維度都可以關聯至對應日志,提供多日志文件訪問入口,以及分頁展示查詢和日志高亮功能。

另外,我們使用了較新的Angular 7.0 對Flink web進行了全面重構,頁面運行性能有了一倍以上的提升。在大數據量情況下也不會發生頁面卡死或者卡頓情況。同時對頁面的交互邏輯進行了整體優化,絕大部分關聯信息在單個頁面就可以完成查詢和比對工作,減少了大量不必要的跳轉。

未來的規劃

Blink邁出了全面開源的第一步,接下來我們會和社區合作,盡可能以最快的方式將Blink的功能和性能上的優化merge回Flink。本次的開源版本一方面貢獻了Blink多年在流計算的積累,另一方面又重磅推出了在批處理上的成果。接下來,我們會持續給Flink社區貢獻其他方面的功能。我們期望每過幾個月就能看到技術上有一個比較大的亮點貢獻到社區。下一個亮點應該是對機器學習的支持。要把機器學習支持好,有一系列的工作要做,包括引擎的功能,性能,和易用性。這里面大部分的工作我們已經開發完成,并且很多功能都已經在阿里巴巴內部服務上線了。

除了技術上創新以及新功能之外,Flink的易用性和外圍生態也非常重要。我們已經啟動了若干這方面的項目,包括Python以及Go等多語言支持,Flink集群管理,Notebook,以及機器學習平臺等等。這些項目有些會成為Flink自身的一部分貢獻回社區,有些不是。但它們都基于Flink,是Flink生態的一個很好的補充。獨立于Flink之外的那些項目,我們都也在認真的考慮開源出來。總之,Blink在開源的第一天起,就已經完全all-in的融入了Flink社區,我們希望所有的開發者看到我們的誠意和決心。

未來,無論是功能還是生態,我們都會在Flink社區加大投入,我們也將投入力量做 Flink 社區的運營,讓 Flink 真正在中國、乃至全世界大規模地使用起來。我們衷心的希望更多的人加入,一起把Apache Flink開源社區做得更好!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源碼
    +關注

    關注

    8

    文章

    651

    瀏覽量

    29348
  • 阿里
    +關注

    關注

    6

    文章

    441

    瀏覽量

    32868

原文標題:阿里正式向 Apache Flink 貢獻 Blink 源碼

文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    阿里巴巴出售高鑫零售股權,聚焦核心業務

    近日,阿里巴巴集團正式對外發布公告,宣布其子公司及New Retail與德弘資本達成了一項重要協議。根據該協議,阿里巴巴將出售其所持有的高鑫零售全部股權,這些股權合計占高鑫零售已發行股份總數的約
    的頭像 發表于 01-02 10:54 ?129次閱讀

    阿里巴巴整合電商資源,成立全新電商事業群

    近日,阿里巴巴集團迎來了一項重大組織調整。集團CEO吳泳銘通過內部郵件正式宣布,將整合國內和海外電商業務,成立全新的電商事業群。這一決策標志著阿里巴巴在電商領域的一次重要戰略部署。 據悉,新的電商事
    的頭像 發表于 11-22 10:51 ?191次閱讀

    阿里巴巴國際站首推全流程AI產品

    近日,阿里巴巴國際站正式推出了其首個全流程AI產品——AI生意助手2.0。這一創新產品的問世,標志著阿里巴巴在助力中小企業外貿經營方面邁出了重要一步。
    的頭像 發表于 10-30 16:12 ?274次閱讀

    阿里巴巴完成雙重主要上市

    8月28日阿里巴巴在香港聯交所主板主要上市,成為在港交所、紐交所雙重主要上市的公司。如今,阿里巴巴完成雙重主要上市。 此外,有投資機構認為阿里巴巴最快有望于9月份就納入港股通。 截至8月28日收盤,
    的頭像 發表于 08-29 16:06 ?397次閱讀

    阿里巴巴季報出爐 阿里云二季度營收增長6%

    阿里巴巴季報出爐我們一起來圍觀一下,根據阿里巴巴集團發布的截至2024年6月30日的第二季度經營業績數據顯示,阿里巴巴該季度營收達到2432.4億元,而上年同期營收2341.56億元,同比增4%;經
    的頭像 發表于 08-16 16:45 ?527次閱讀

    阿里巴巴AI賦能海外擴張新篇章

    中國電商巨頭阿里巴巴集團正積極重啟并加速其海外擴張戰略,以應對國內電商市場競爭加劇的挑戰。此次擴張的一大亮點在于,阿里巴巴將人工智能(AI)技術深度融入其國際業務布局中,開啟了海外發展的新篇章。
    的頭像 發表于 07-12 17:56 ?1036次閱讀

    阿里巴巴投資逐際動力,深化智能機器人布局

    近日,阿里巴巴集團對深圳逐際動力科技有限公司(簡稱:逐際動力)進行戰略投資,此舉再次體現了阿里巴巴在智能機器人領域的堅定布局。
    的頭像 發表于 05-22 11:52 ?843次閱讀

    阿里巴巴集團2024財年穩健增長

    阿里巴巴集團近日公布了其2024財年第四季度及全年業績報告,數據亮眼。在經歷一年的主動變革后,阿里巴巴重回健康增長軌道。
    的頭像 發表于 05-16 11:23 ?712次閱讀

    阿里巴巴杭州全球總部正式啟用

    近日,阿里巴巴在杭州的未來科技城正式揭開了其全球總部新園區的面紗。這座園區不僅是阿里巴巴目前規模最大的綜合性辦公空間,更是其綠色、科技、可持續發展理念的生動體現。
    的頭像 發表于 05-13 11:15 ?564次閱讀

    阿里巴巴減持小鵬汽車股份至9.24%

    據美東時間 3 月 20 日披露,小鵬汽車于美國證券交易委員會文件中透露,阿里巴巴旗下淘系平臺淘寶中國控股有限公司(Taobao China Holding Limited)正計劃出售 3300 萬份小鵬汽車 ADS,市值約為 3.14 億美元(約合人民幣 22.61 億元)。
    的頭像 發表于 03-21 10:45 ?760次閱讀

    阿里巴巴重返中國頂級電商軌道

    阿里巴巴集團董事會主席蔡崇信近日宣布,經過一系列架構重組和管理層變動后,阿里巴巴已成功重返中國頂級電商軌道。蔡崇信在講話中強調,公司正在逐步調整戰略,重新定位其在電商領域的領導地位。
    的頭像 發表于 02-27 14:29 ?955次閱讀

    阿里巴巴漲超3% 財報或超預期

    阿里巴巴漲超3% 今日港股開盤后阿里巴巴漲超3%,恒生科技表現也很亮眼。快手、比亞迪電子、聯想集團等多股上漲。 阿里巴巴將于2月7日發布2024財年第三季度財報,業界分析會超預期。
    的頭像 發表于 02-06 16:05 ?1500次閱讀

    軟銀子公司確認減持阿里 阿里巴巴最大股東易主

    軟銀子公司確認減持阿里 軟銀集團旗下全資子公司Skybridge LLC在回應關于買賣阿里巴巴股票時表示,此前已經與金融機構簽訂了預付遠期合約涉及5.21億股;由于近幾年已經分階段實施并完成實物結算
    的頭像 發表于 01-26 20:45 ?1818次閱讀

    軟銀已完成減持阿里巴巴股份

    近日,軟銀集團全資子公司Skybridge LLC宣布,已完成對阿里巴巴股份的減持。這一決定是在經過深思熟慮后作出的,旨在優化公司的財務結構和未來的投資策略。
    的頭像 發表于 01-26 15:58 ?894次閱讀

    馬云大幅增持阿里股票 馬云取代軟銀成為阿里巴巴最大股東

    馬云大幅增持阿里股票 馬云取代軟銀成為阿里巴巴最大股東 有媒體報道,阿里巴巴創始人馬云、蔡崇信近期大筆增持了阿里的股票,而且已經買成了最大股東,馬云取代軟銀成為
    的頭像 發表于 01-24 18:55 ?1128次閱讀
    主站蜘蛛池模板: 日本人亚洲人成人| 四虎影院官网| 日本www.色| 四虎永久免费观看| 99 久久99久久精品免观看| 看黄网站在线观看| 国产欧美日韩视频免费61794| 亚洲禁片| 亚洲va国产日韩欧美精品色婷婷 | 男人天堂黄色| 天天插综合| 爱爱小视频免费看| 豆国产97在线 | 欧洲| 好男人午夜www视频在线观看| 免费一级大片| 毛片网站免费在线观看| 欧美成人精品一级高清片| 欧美成人观看免费全部完小说| 秋霞一级特黄真人毛片| 日本大片网| 久久精品免费视频观看| 韩国三级理论在线看中文字幕| 黄色性生活毛片| 丁香色婷婷| 天天干天天舔天天操| 天天操天天射天天插| 日本jlzz| 啪啪国产视频| 伊人97在线| 欧美日韩国产成人精品| 国产在线视频不卡| 思思99re66在线精品免费观看| 国产视频综合| 在线视频一区二区三区四区| 久久久久无码国产精品一区| 性欧美暴力猛交69hd| 女人张开双腿让男人桶完整| 国产床戏无遮掩视频播放| 欧美一级黄色片在线观看| 亚洲码在线| 日韩高清性爽一级毛片免费|