- Flink內核原理與實現
- 馮飛 崔鵬云 陳冠華編著
- 722字
- 2021-04-14 11:30:29
第1章 Flink入門
決定Flink的架構和實現的核心概念:數據是流,是動態的。數據不是在某一個時刻憑空產生的,而是隨著時間的流逝不斷地產生,實時數據是當前的數據,歷史數據就是截止到某個時刻產生的數據流集合。
大數據處理中有兩種經典模式:批處理、流處理。以流為核心,必須解決如何在數據流上實現流批統一。Google在Streaming 101、Streaming 102兩篇文章中對此進行了闡述,提出了一套以流為核心的計算引擎的關鍵概念,如有界數據(靜態數據集)與無界數據(數據流)、時間、窗口、Watermark等,對流批的概念進行了融合。
無界數據就是持續產生的數據流,有界數據是過去一個時間窗口內不變的數據流。對無界數據的處理就是流處理,對有界數據的處理就是批處理。流處理就是對未來持續產生的數據進行計算,批處理是對過去不再變化的數據流的計算。基于這種抽象,Flink解決了流批統一的問題。
流即未來,Flink以流為核心的實現與Google Cloud Dataflow平臺有異曲同工之妙。其中有兩層含義:
● 一是實時處理的需求越來越大,數據的時效性非常重要。
● 二是以流為核心的計算引擎,是更加自然的大數據處理引擎的實現形式。
以數據流為核心基礎,Apache Flink構建出了高性能、高可用的批流一體的分布式大數據計算引擎,在數據流上提供數據分發、通信、具備容錯能力的分布式計算功能。
過去,很多人認為Flink是一個類似Storm的實時計算引擎,而如今Flink以流計算引擎為基礎,同樣支持批處理,并且提供了SQL、復雜事件處理CEP、機器學習、圖計算等更高階的數據處理場景。
提到Flink,必然繞不開Spark,Spark的核心是批處理,采用微批處理實現實時計算。但是隨著Flink的成熟度越來越高,阿里巴巴在2019年收購了Flink的商業公司,把Blink重大改進貢獻給社區,使Flink在功能、性能方面突飛猛進,在實時計算領域相比Spark Streaming、Storm的優勢越來越大,在批處理方面的性能也與Spark不相上下。
- 亮劍.NET:.NET深入體驗與實戰精要
- GNU-Linux Rapid Embedded Programming
- Hands-On Internet of Things with MQTT
- 計算機原理
- 數據庫原理與應用技術學習指導
- 傳感器與物聯網技術
- Lightning Fast Animation in Element 3D
- Kubernetes for Serverless Applications
- Docker on Amazon Web Services
- Photoshop CS5圖像處理入門、進階與提高
- Linux系統下C程序開發詳解
- ADuC系列ARM器件應用技術
- ARM體系結構與編程
- 工業機器人應用系統三維建模
- 輸送技術、設備與工業應用