iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

30天認識主流大數據框架:Hadoop + Spark + Flink系列 第 21

Day21 - Flink 介紹 (1):簡介、架構、數據處理

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20231006/20138939mx7TqTYdps.png

前言
終於進入最後一個主題,好感動呀😭

前面介紹的 Spark 雖然改進了 MapReduce 的缺點,讓運算效率變得更快,更是有 Spark Streamiing 來處理實時數據流,但硬要說的話,Spark 終究還是批處理架構 (微批處理),缺點是延遲較高

而今天要介紹的 Flink 則是真正的流處理架構,擅長處理連續的數據流,通常擁有更低的延遲!

Flink 簡介

Apache Flink 是 Apache 軟體基金會的頂級專案,Flink 主打的是一個高效率的大數據流處理 + 批處理架構,也就是所謂「流批一體」。

除了流批一體外,Flink 有幾個特色:

  1. 準確性
    Flink 支持 exactly-once 處理保證,確保每個事件只會被處理一次,另外 Flink 有時間窗口 (Time Windows) 的概念,即使事件未按照順序排列,或是事件延遲抵達,Flink 都確保最後的結果具有正確性。
    https://ithelp.ithome.com.tw/upload/images/20231006/20138939WTGaNcKDFP.png
  2. 可靠性
    Flink 有 狀態管理 (stateful),使得 Flink 在處理時具有很高的 故障容許度 (fault tolerance),能夠快速地進行失敗復原(failure recovery)
    https://ithelp.ithome.com.tw/upload/images/20231006/20138939Uylp8ZhtEn.png
  3. 可擴展性
    Flink 被設計為能在龐大的集群中運行,並且能使用 YARN 、Mesos 等資源管理器。
    https://ithelp.ithome.com.tw/upload/images/20231006/20138939rRB9YJa7iK.png
  4. 高吞吐低延遲
    與同樣是流處理的 Storm 框架相比,Flink 的吞吐量遠遠優於 Storm,而 Flink 的流式處理模型與分散式架構使其能在高吞吐時維持低延遲。
    https://ithelp.ithome.com.tw/upload/images/20231006/20138939EIhA2bzXoR.png

Flink 架構

Flink 也是主從架構 (Master/Slave),由一個 JobManager 與一個或多個 TaskManager 組成。
https://ithelp.ithome.com.tw/upload/images/20231006/20138939kOFeDil6kV.png

  • JobManager
    JobManager 決定任務的安排、對完成或失敗的任務作出反應、協調故障恢復等工作,其由三個部分組成,分別是:

    • Dispatcher:負責接收 client 提交的任務,並為其生成一個 JobMaster。
    • ResourceManager:資源管理器,負責管理 TaskManager 中的 Task Slots
    • JobMaster:每個任務都會有一個自己的 JobMaster,負則管理任務的執行。
  • TaskManager
    TaskManagers(也稱為工作程序)執行數據流的任務,負責接收、處理、存儲和轉發數據,同時管理和優化數據的流動。Task Slot 是 TaskManager 中資源使用的單位。

Flink 數據處理

  • Operator & Operator Chains
    Flink 中的數據處理的基本組件是Operator (運算子),如 mapfilter 等,而 Operator Chains (運算子鏈) 則是將 Operator 鏈接起來的一種優化機制,透過將相鄰的運算子串聯在一起以減少數據的傳輸。
  • Task & Subtask
    Operator Chains 將一個或多個 Operator 串聯為一個 Task (任務) 邏輯單位,而 Subtask (子任務) 則是任務的實際執行單位,每個 Subtask 會被分配到一個 Task Slot (最小資源單位):獨立執行相同操作,但處理不同的數據分區。

https://ithelp.ithome.com.tw/upload/images/20231006/20138939TJ9VL6ttRi.png

預告

明天會介紹 Flink Ecosystem,以 Flink Ecosystem 為切入點補充一些部署API 的東西。

參考資料

Introduction to Apache Flink
Flink Architecture
(今天的圖都來自參考資料。)


上一篇
Day20 - PySpark (4):協同過濾推薦 with MLlib
下一篇
Day22 - Flink 介紹 (2):Flink Ecosystem
系列文
30天認識主流大數據框架:Hadoop + Spark + Flink30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言