flink是一款開源的大數據流式處理框架,他能夠同時批處理和流處理,具備容錯性、高吞吐、低延遲等優點,本文簡述flink的編程模型。html
常見的無窮數據集有:編程
Flink它能夠處理有界的數據集,也能夠處理無界的數據集,它能夠流式的處理數據,也能夠批量的處理數據。網絡
從下至上:架構
一、部署:Flink 支持本地運行、能在獨立集羣或者在被 YARN 或 Mesos 管理的集羣上運行, 也能部署在雲上。 二、運行:Flink 的核心是分佈式流式數據引擎,意味着數據以一次一個事件的形式被處理。 三、API:DataStream、DataSet、Table、SQL API。 四、擴展庫:Flink 還包括用於復瑣事件處理,機器學習,圖形處理和 Apache Storm 兼容性的專用代碼庫。框架
抽象級別 Flink提供了不一樣的抽象級別以開發流式或者批處理應用機器學習
最底層提供了有狀態流,它將經過過程函數嵌入到DataStream API中,它容許用戶能夠自由地處理來自一個或者多個流數據的事件,並使用一致、容錯的狀態。除此以外,用戶能夠註冊事件時間和處理事件回調,從而使程序能夠實現複雜的計算。socket
DataStream / DataSet API 是 Flink 提供的核心 API ,DataSet 處理有界的數據集,DataStream 處理有界或者無界的數據流。用戶能夠經過各類方法(map / flatmap / window / keyby / sum / max / min / avg / join 等)將數據進行轉換 / 計算。分佈式
Table API 是以 表 爲中心的聲明式 DSL,其中表可能會動態變化(在表達流數據時)。Table API 提供了例如 select、project、join、group-by、aggregate 等操做,使用起來卻更加簡潔(代碼量更少)。函數
你能夠在表與 DataStream/DataSet 之間無縫切換,也容許程序將 Table API 與 DataStream 以及 DataSet 混合使用。oop
Flink 應用程序結構就是如上圖所示:
Flink系列文章:
更多實時計算,Flink,Kafka等相關技術博文,歡迎關注實時流式計算
原文出處:https://www.cnblogs.com/tree1123/p/12048017.html