跳至內容

ApacheFlink

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

Apache Flink是由 Apache 軟體基金會開發的開源流處理框殼,其核心是用 Java 和 Scala 編寫的分布式流數據流 ia̋n-jín。Flink 以數據並行和管道方式執行任意流數據程序,Flink 的流水線運行時系統會當執行批處理佮流處理程序。此外,Flink 迵天的時陣本身嘛支持迵天算法的執行。

Flink 提供大吞吐量、低延遲的流數據 ia̋n-jín 以及對事件-時間來處理佮狀態管理的支持。Flink 應用程式佇發生機器故障的時具有容錯能力,並且支持 exactly-once 語義。程序嘛會使用 Java、Scala、Python 和 SQL 等語言編寫,而且自動編譯佮優化到在集群抑是雲環境中運行的數據流程序。

Flink 並無提供家己的數據存儲系統,但是 Amazon Kinesis、Apache Kafka、Alluxio、HDFS、Apache Cassandra 和 Elasticsearch 等系統提供了數據源佮接收器。

開發

Apache Flink 是由 Apache 軟體基金會內的 Apache Flink 社區是因為 Apache 許可證二交零開發的,該項目已經有超過一百位代碼提交者佮超過四百六十貢獻者。

data Artisans 是由 Apache Flink 的創始人創建的公司。目前,該公司已經聘用十二个 Apache Flink 的代碼提交者。

概述

Apache Flink 的數據流編程模型佇咧有限和無限數據集頂頭提供孤一擺事件(event-at-a-time)處理。佇基礎層面,Flink 程序由流和轉換組成。「佇概念上講,流是一个(可能永無止境的)數據流記錄,轉換是一種將一个抑是濟流作為輸入並毋才會產生一个抑是濟的操作」。

Apache Flink 包括兩个核心 API:用佇有界或者是無界數據流的數據流 API 佮用佇有界數據集的數據集 API。Flink 閣提供一个表 API,伊是一種類似 SQL 的表達語言,用佇關係流和批的處理,會當誠容易地1875入去 Flink 的數據流佮數據集 API 中。Flink 支持的上高級的語言是 SQL,伊佇語義頂懸類似表示 API,並將程序表示為 SQL 查詢表達式。

編程模型佮分佈式運行的時陣

Flink 程序佇執行了後被映射到流數據流,彼每一个 Flink 數據流以一个抑是幾若个源(數據輸入,比如講消息隊列抑是文件系統)開始,並以一个若濟接收器(數據輸出,如消息隊列、文件系統抑是資料庫等等)結束。Flink 會當對流執行任意數量的變換,遮的流會當予人編排做有向無環數據流圖,允准應用程式分支佮合併數據流。

Flink 提供現成的源佮接收連接器,包括講 Apache Kafka、Amazon Kinesis、HDFS 和 Apache Cassandra 等。

Flink 程序會當做集群內的分布式系統運行,嘛會當獨立模式抑是佇 YARN、Mesos、是因為 Docker 的環境佮其他的資源管理框架下進行部署。

狀態:檢查點、保存點佮容錯

Apache Flink 具有一種因為分布式檢查點的輕量級容毋著機制。檢查點是應用程式狀態佮源流中位置的自動異步緊照。佇發生故障的情形下,啟用著檢查點的 Flink 程序欲佇咧恢復的時陣對頂一个完成的檢查點恢復處理,確保 Flink 佇咧應用程式內底保持一改性(exactly-once)狀態語義。檢查點機制暴露應用程式代碼的接口,通好共外部系統包括佇檢查點機制內底(就是拍開佮提交資料庫系統的事務)。

Flink 閣包括一種號做保存點的機制,伊是一種手動觸發的檢查點。用戶會當生做保存點,停止當咧運行的 Flink 程序,然後踮佇流目中的仝款應用程式狀態佮位置恢復程序。保存點會當佇無擲失應用程式狀態的情形下對 Flink 程序抑是 Flink 群集進行更新。對 Flink 一孵二開始,保存點閣允准以無仝款的並行性重新啟動應用程式,這予咱用戶適應不斷變化的工課負載。

數據流 API

Flink 的數據流 API 支持有界或者是無界數據流上的轉換(若過濾器、聚合和窗仔口函數), 包含著二十幾種無仝類型的轉換,會當佇 Java 和 Scala 中使用。

有狀態流處理程序的一个簡單 Scala 示例是對連紲輸入流發出字數並且佇咧五秒窗口中對數據來進行分組的應用:

Apache Beam-Flink Runner

Apache Beam「提供一種高級統一編程模型,容允(開發人員)實現此時佇任何執行 ia̋n-jín 頂運行批處理佮流數據處理作業」。 Apache Flink-on-Beam 運行器是功能上豐富的、由 Beam 是咱社區維護的能力矩陣。

data Artisans 佮 Apache Flink 社區做伙,佮 Beam 社區做密切合作,開發一个強大的 Flink runner。

數據集 API

Flink 的數據集 API 支持從有界數據集進行轉換(如過濾、映射、連接和分組), 包含著二十幾種無仝類型的轉換。該 API 可用 Java、Scala 佮實驗性的 Python API。Flink 的數據集 API 佇概念上佮數據流 API 類似。

表 API 和 SQL

Flink 的表 API 是一種的類似 SQL 的表達語言,用佇關係流和批的處理,會當1875入去 Flink 的 Java 和 Scala 數據集和數據流 API 中。表 API 和 SQL 接口佇關係表抽象上運行,會當對外部的數據源抑是講現有數據流佮數據集創建表。表 API 支持關係運算符,如表上的選擇、聚合佮連接等。

嘛會使用較捷規 SQL 查詢表。表 API 提供了佮 SQL 仝款的功能,會當佇仝一程序內底共同做使用。錶仔轉換回數據集抑是數據流的時,由關係運算符和 SQL 查詢定義的邏輯計劃欲使用 Apache Calcite 進行優化,並轉換做數據集抑是數據流程序。

Flink Forward

Flink Forward 是一个關於著 Apache Flink 的年度會議。第一屆 Flink Forward 佇二空一五年佇柏林舉行。為期兩工的會議有來自十六个國家的二百五十外名與會者。會議分做兩个部分,Flink 開發人員提供三十幾个技術演示,另外閣一个 Flink 培訓實踐。

二空一六年,三百五十名與會者參加了會議,四十外位發言人佇三个平行軌道頂頭進行技術講座。第三工,與會者予人邀請參加實踐培訓的課程。

二空一七年乎,這个活動嘛欲楦展去舊金山。會議誠拍拚咧 Flink 欲按怎佇企業中使用、Flink 系統內部、佮 Flink 的生態系統集做佮平台的未來進行技術會談。伊包含主題演講 Flink 用戶佇咧工業佮學術界的講座猶閣有關於 Apache Flink 的實踐培訓課程。

來自以下組織的發言人佇 Flink Forward 會議頂發表矣演講:阿里巴巴集團、Amadeus、Bouygues Telecom、第一資本、Cloudera、data Artisans、EMC、愛立信、Hortonworks、華為、IBM、Google、MapR、MongoDB、Netflix、New Relic、Otto Group,Red Hat、ResearchGate、Uber 和 Zalando。

歷史

二空一空年,研究項目「Stratosphere:雲頂的信息管理」(由德國研究基金會(DFG)助贊)由柏林工業大學、柏林洪堡大學佮哈索 ・ 普拉特納研究院合作啟動。Flink 對 Stratosphere 的分布式執行 ia̋n-jín 的一个分支開始,佇咧二空一四年三月成做 Apache 孵化器項目。二空一四年十二月,Flink 成做 Apache 頂級項目。

_ 發佈日子 _

  • 二千空一十八分之八 : Apache Flink 一孵六 ( 二千空一十八分之九 : 一孵六 . 一 ; 二千空一十八分之十 : 一孵六 . 二 )
  • 二千空一十八分之五 : Apache Flink 一垺五 ( 二千空一十八分之七 : 一垺五 . 一 ; 二千空一十八分之七 : 一垺五 . 二 ; 二千空一十八分之八 : 一垺五 . 三 ; 二千空一十八分之九 : 一垺五 . 四 ; 二千空一十八分之十 : 一垺五 . 五 )
  • 十二 / 二空一七年乎 : Apache Flink 一孵四 ( 二千空一十八分之二 : 一孵四 . 一 ; 二千空一十八分之三 : 一孵四 . 二 )
  • 二千空一十七分之六 : Apache Flink 一孵三 ( 二千空一十七分之六 : 一孵三 . 一 ; 二千空一十七分之八 : 一孵三 . 二 ; 二千空一十八分之三 : 一孵三 . 三 )
  • 二千空一十七分之二 : Apache Flink 一孵二 ( 二千空一十七分之四 : 一孵二 . 一 )
  • 二千空一十六分之八 : Apache Flink 一孵一 ( 二千空一十六分之八 : 一孵一 . 一 ; 二千空一十六分之九 v 一。一孵二 ; 二千空一十六分之十 v 一。一孵三 ; 二千空一十六分之十二 v 一。一孵四 ; 二千空一十七分之三 v 一。一垺五 )
  • 二千空一十六分之三 : Apache Flink 一垺零 ( 二千空一十六分之四 : 一垺零 . 一 ; 二千空一十六分之四 : 一垺零 . 二 ; 二千空一十六分之五 v 一。空吱三 )
  • 二千空一十五分之十一 : Apache Flink 空七一空 ( 二千空一十五分之十一 : 空七一空 . 一 ; 二千空一十六分之二 : 空七一空 . 二 )
  • 二千空一十五分之六 : Apache Flink 空九九 ( 二千空一十五分之九 : 空九九 . 一 )
  • 二千空一十五分之四 : Apache Flink 空九九-路站碑-一

_ Apache 孵化器發布日期 _

  • 二千空一十五分之一 : Apache Flink 空九八-孵出來
  • 二千空一十四分之十一 : Apache Flink 空九七-孵出來
  • 二千空一十四分之八 : Apache Flink 空七六-孵出來 ( 二千空一十四分之九 : 空七六 . 一-孵出來 )
  • 二千空一十四分之五 : Stratosphere 空七五 ( 二千空一十四分之六 : 空七五 . 一 ; 二千空一十四分之七 : 空七五 . 二 )

_ Pre-Apache Stratosphere 發佈日子 _

  • 二千空一十四分之一 : Stratosphere 空七四(空九三版本予人跳過)
  • 二千空一十二分之八 : Stratosphere 空二二
  • 二千空一十一分之五 : Stratosphere 空七一(二千空一十一分之八 : 空七一 . 一)

參見

  • Apache 軟體基金會項目列表
  • 其他類似的數據處理 ia̋n-jín,如 Storm 和 Spark。
  • Apache Beam,一種共享編程模型,Flink 是其創始後端。

參考文獻

外部連結

  • 官方網站