隨着大數據技術在各行各業的廣泛應用,要求能對海量數據進行實時處理的需求越來越多,同時數據處理的業務邏輯也越來越復雜,傳統的批處理方式和早期的流式處理框架也越來越難以在延遲性、吞吐量、容錯能力以及使用便捷性等方面滿足業務日益苛刻的要求。
在這種形勢下,新型流式處理框架Flink通過創造性地把現代大規模並行處理技術應用到流式處理中來,極大地改善了以前的流式處理框架所存在的問題。
一句話:flink是etl的工具。
flink的層次結構:
其中,
windows下flink示例程序的執行 簡單介紹了一下flink在windows下如何通過flink-webui運行已經打包完成的示例程序(jar)
從flink-example分析flink組件(1)WordCount batch實戰及源碼分析講到DataSet的轉換
從flink-example分析flink組件(2)WordCount batch實戰及源碼分析----flink如何在本地執行的?flink batch批處理如何在本地執行的
從flink-example分析flink組件(3)WordCount 流式實戰及源碼分析 flink stream流式處理如何在本地執行的?
使用flink Table &Sql api來構建批量和流式應用(1)Table的基本概念介紹了Table的基本概念及使用方法
使用flink Table &Sql api來構建批量和流式應用(2)Table API概述介紹了如何使用Table
使用flink Table &Sql api來構建批量和流式應用(3)Flink Sql 使用 介紹了如何使用sql
flink dataset api使用及原理 介紹了DataSet Api
flink DataStream API使用及原理介紹了DataStream Api
flink中的時間戳如何使用?---Watermark使用及原理 介紹了底層實現的基礎Watermark
flink window實例分析 介紹了window的概念及使用原理
Flink中的狀態與容錯 介紹了State的概念及checkpoint,savepoint的容錯機制
flink的特征
最后,給出官網給出的特征作為結束:
1、一切皆為流(All streaming use cases )
- 事件驅動應用(Event-driven Applications)
- 流式 & 批量分析(Stream & Batch Analytics)
- 數據管道&ETL(Data Pipelines & ETL)
2、正確性保證(Guaranteed correctness)
- 唯一狀態一致性(Exactly-once state consistency)
- 事件-事件處理(Event-time processing)
- 高超的最近數據處理(Sophisticated late data handling)
3、多層api(Layered APIs)
- 基於流式和批量數據處理的SQL(SQL on Stream & Batch Data)
- 流水數據API & 數據集API(DataStream API & DataSet API)
- 處理函數 (時間 & 狀態)(ProcessFunction (Time & State))
4、易用性
- 部署靈活(Flexible deployment)
- 高可用安裝(High-availability setup)
- 保存點(Savepoints)
5、可擴展性
- 可擴展架構(Scale-out architecture)
- 大量狀態的支持(Support for very large state)
- 增量檢查點(Incremental checkpointing)
6、高性能
- 低延遲(Low latency)
- 高吞吐量(High throughput)
- 內存計算(In-Memory computing)
flink架構
1、層級結構
2.工作架構圖