Flink學習——基礎

Flink

官網:https://flink.apache.org/


一、Flink簡介

1、Apache Flink框架,是一個分佈式處理引擎(分佈式計算框架)。

2、它針對於無界和有界數據流,進行有狀態計算(實時、批量計算)。

3、其設計,就是爲了能在所有常見的集羣環境中運行(兼容性強)。

4、以內存速度和任何規模集羣執行計算(任意規模集羣)。

二、Flink架構特點

1、處理無界及有界數據流(實時處理、批量處理)。

a、任何類型的數據都是以事件流產生的。比如,信用卡交易、傳感器測量、機器日誌、網站或App上用戶交互等產生的數據流

b、因此,數據可以作爲無界或有界流處理。

c、無界流數據:特點是有始無終。需持續,順序攝取處理——>實時處理

d、有界流數據:特點是有始有終。不必順序攝取處理——>批量處理

2、隨處部署應用程序(易部署)。

a、可與其它組件集成部署
      Flink是分佈式系統,需要計算資源纔可執行程序。常見的集羣資源管理器,如:Hadoop Yarn,Apache Mesos、
Kubernetes
b、也可單節點集羣部署運行。

c、爲啥易部署

部署Flink應用程序時,

      i)Flink會根據應用程序配置的並行性自動識別所需資源,並從資源管理器請求它們。

      ii)如果發生故障,Flink會通過請求新資源來替換髮生故障的容器。

      iii)提交或控制應用程序的所有通信都通過REST調用進行。這簡化了Flink在許多環境中的集成。

3、以任何規模集羣、運行應用程序(可大可小集羣)。

a、Flink旨在以任何規模運行有狀態流應用程序。

      應用程序可以並行化爲數千個在集羣中分佈和同時執行的任務。因此,應用程序幾乎可以利用無限量的CPU,主內存,磁盤和網絡IO。

b、Flink可以輕鬆維護非常大的應用程序狀態。

      其異步和增量檢查點算法確保對處理延遲的影響最小,同時保證一次性狀態一致性。

c、用戶反饋的在生產環境Flink的可拓展性報告:

      i)應用程序每天處理數萬億個事件。

      ii)應用程序可維護複雜的TB級別的狀態。

      iii)應用程序在數千個內核上運行。

4、內存中運行的性能表現(處理快)。

a、有狀態Flink應用程序針對本地狀態訪問進行了優化。

      任務狀態始終保留在內存中。或者,如果狀態大小超過可用內存,則保存在訪問高效的磁盤上數據結構中(SSD 機械/固態)。因此,任務通過訪問本地(通常是內存中)狀態來執行所有計算,從而產生非常低的處理延遲。

b、Flink通過定期和異步檢查本地狀態到持久存儲來保證在出現故障時的一次狀態一致性。

三、無界數據集應用場景(實時計算)

1、源源不斷的日誌數據
2、web應用,指標分析
3、移動設備終端(分析App狀況)
4、應用在任何源源不斷產生數據的項目中

四、Flink處理模型

1、流計算(實時計算)
由於數據是源源不斷產生,因此需持續,順序地攝取數據進行處理。
2、批處理(批量計算)
針對一段一段的數據集,則不必順序攝取處理。計算成功後釋放資源,那麼此時工作結束。

五、Flink的使用總結

1、處理結果準確:無論是有序數據還是延遲到達的數據。
2、容錯機制:
      有狀態:保持每次的結果往下傳遞,實現累加。DAG(有向無環圖)。
3、有很強大的吞吐量和低延遲。
      計算速度快,吞吐量處理的量級大。
4、精準的維護一次的應用狀態。
      Storm:會發生要麼多計算一次,要麼漏計算。
5、支持大規模的計算
      可以運行在數千臺節點上。
6、支持流處理和窗口化操作
7、版本化處理
8、檢查點機制(checkpoint),保證一次性計算的精準性
9、支持yarn與mesos資源管理器

六、Flink單節點安裝部署

1、下載安裝包  https://flink.apache.org/downloads.html

2、上傳到Linux環境

3、解壓到指定位置,便於管理(比如,myinstall)    tar -zxvf  flink-1.6.2-bin-hadoop28-scala_2.11.tgz

4、啓動    bin/start-cluster.sh

5、訪問ui界面    http://192.168.48.111:8081

——————————————————我也是有底線的:)——————————————————


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章