flink

flink

Apache Flink是由Apache軟體基金會開發的開源流處理框架,其核心是用JavaScala編寫的分散式流數據流引擎。Flink以數據並行流水線方式執行任意流數據程式,Flink的流水線運行時系統可以執行批處理和流處理程式。此外,Flink的運行時本身也支持疊代算法的執行。

基本介紹

開發,Flink的簡介,概述,數據流的運行流程,Flink的數據源和接收器,Flink的狀態:檢查點、保存點和容錯機制,Flink的數據流API,Apache Beam - Flink Runner,數據集API,表API和SQL,歷史版本,

開發

Apache Flink是由Apache軟體基金會內的Apache Flink社區基於Apache許可證2.0開發的,該項目已有超過100位代碼提交者和超過460貢獻者。data Artisans是由Apache Flink的創始人創建的公司。目前,該公司已聘用了12個Apache Flink的代碼提交者。

Flink的簡介

概述

Apache Flink的數據流編程模型在有限和無限數據集上提供單次事件(event-at-a-time)處理。在基礎層面,Flink程式由流和轉換組成。
Apache Flink的API:有界或無界數據流的數據流API、用於有界數據集的數據集API、表API。

數據流的運行流程

Flink程式在執行後被映射到流數據流,每個Flink數據流以一個或多個源(數據輸入,例如訊息佇列或檔案系統)開始,並以一個或多個接收器(數據輸出,如訊息佇列、檔案系統或資料庫等)結束。Flink可以對流執行任意數量的變換,這些流可以被編排為有向無環數據流圖,允許應用程式分支和合併數據流。

Flink的數據源和接收器

Flink提供現成的源和接收連線器,包括Apache Kafka、Amazon Kinesis、HDFS和Apache Cassandra等。
Flink程式可以作為集群內的分散式系統運行,也可以以獨立模式或在YARN、Mesos、基於Docker的環境和其他資源管理框架下進行部署。

Flink的狀態:檢查點、保存點和容錯機制

Flink檢查點和容錯:檢查點是應用程式狀態和源流中位置的自動異步快照。在發生故障的情況下,啟用了檢查點的Flink程式將在恢復時從上一個完成的檢查點恢復處理,確保Flink在應用程式中保持一次性(exactly-once)狀態語義。檢查點機制暴露應用程式代碼的接口,以便將外部系統包括在檢查點機制中(如打開和提交資料庫系統的事務)。
Flink保存點的機制是一種手動觸發的檢查點。用戶可以生成保存點,停止正在運行的Flink程式,然後從流中的相同應用程式狀態和位置恢復程式。 保存點可以在不丟失應用程式狀態的情況下對Flink程式或Flink群集進行更新。

Flink的數據流API

Flink的數據流API支持有界或無界數據流上的轉換(如過濾器、聚合和視窗函式),包含了20多種不同類型的轉換,可以在Java和Scala中使用。
有狀態流處理程式的一個簡單Scala示例是從連續輸入流發出字數並在5秒視窗中對數據進行分組的套用:

Apache Beam - Flink Runner

Apache Beam“提供了一種高級統一編程模型,允許(開發人員)實現可在在任何執行引擎上運行批處理和流數據處理作業”。Apache Flink-on-Beam運行器是功能最豐富的、由Beam社區維護的能力矩陣。
data Artisans與Apache Flink社區一起,與Beam社區密切合作,開發了一個強大的Flink runner。

數據集API

Flink的數據集API支持對有界數據集進行轉換(如過濾、映射、連線和分組),包含了20多種不同類型的轉換。 該API可用於Java、Scala和實驗性的Python API。Flink的數據集API在概念上與數據流API類似。

表API和SQL

Flink的表API是一種類似SQL的表達式語言,用於關係流和批處理,可以嵌入Flink的Java和Scala數據集和數據流API中。表API和SQL接口在關係表抽象上運行,可以從外部數據源或現有數據流和數據集創建表。表API支持關係運算符,如表上的選擇、聚合和連線等。
也可以使用常規SQL查詢表。表API提供了和SQL相同的功能,可以在同一程式中混合使用。將錶轉換回數據集或數據流時,由關係運算符和SQL查詢定義的邏輯計畫將使用Apache Calcite進行最佳化,並轉換為數據集或數據流程式。

歷史版本

版本原始釋放的日期最新版本釋放日期
0.9
2015-06-24
0.9.1
2015-09-01
0.10
2015-11-16
0.10.2
2016-02-11
1.0
2016-03-08
1.0.3版
2016-05-11
1.1
2016-08-08
1.1.5
2017-03-22
1.2
2017-02-06
1.2.1
2017-04-26
1.3
2017-06-01
1.3.3
2018-03-15
1.4
2017-12-12
1.4.2
2018-03-08
1.5
2018-05-25
1.5.5
2018-10-29
1.6
2018-08-08
1.6.2
2018-10-29
1.7
2018-11-30
1.7.2
2019-02-15
1.8
2019-04-09
1.8.0
2019-04-09

相關詞條

熱門詞條

聯絡我們