iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
AI & Data

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

Day22 - Flink 介紹 (2):Flink Ecosystem

  • 分享至 

  • xImage
  •  

前言
這是 Flink 介紹的第二篇,還沒看過第一篇的可以先去看看:Day21 - Flink 介紹 (1):簡介、架構、數據處理

昨天講的部分屬於 Flink 的 Rnutime,往下還有存儲與部署,往上則有 API 與函式庫,今天我們就來看一下 Flink Ecosystem

存儲

Flink 雖然沒有自己的存儲系統,不過可以從多種來源讀取與寫入資料,包括檔案系統 (如:HDFS)、資料庫 (如:HBase、MongeDB)以及訊息佇列 (如:RabbitMQ、Kafka) 等。

部署

模式

Flink 有三種部署模式,分別是 Application ModePer-Job ModeSession Mode
https://ithelp.ithome.com.tw/upload/images/20231007/20138939ePZ3SOy3OC.png

  • Session Mode
    • 集群生命周期:預先啟動 JobManger 與 TaskManager,生命周期完全獨立
    • 集群資源隔離:多個作業共用一個 JobManager,資源隔離最差
    • 啟動延遲短,適合用在規模小、運行時間短的大量作業。
  • Per-Job Mode (Legacy)
    • 集群生命周期作業來了啟動 JobManger、作業結束後 JobManger 消失
    • 集群資源隔離:一個作業對應一個 JobManager,資源隔離最好
    • 啟動延遲長,但最安全
  • Application Mode
    • 集群生命周期應用程式來了啟動 JobManger、應用程式結束後 JobManger 消失
    • 集群資源隔離:一個應用程式對應一個 JobManager,資源隔離居中
    • main() 在集群中執行能降低延遲,因此延遲居中,算是上面兩種方法的折衷版

資源管理

Flink 可以在單機部署,如果是部署在集群中,Flink 預設為 standalone 模式,使用自己的資源管理器 (Flink ResourceManager),不過他也可以使用外部資源管理器 (如:YARN、Mesos) 或容器管理平台 (如:Kubernetes),一些雲服務也支援 Flink (如: Amazon EMR、Google Cloud Dataproc 等)。

API

Flink 有階層式的 API,如下圖:
https://ithelp.ithome.com.tw/upload/images/20231007/20138939dunzJKmXG6.png

  • SQL / Table API:將 DataStream、DataSet 進一步抽象為關聯式資料表,讓使用者能用 SQL 語法來進行批處理和流處理。
  • DataStream API: 是 Flink 的核心 API ,用來處理無界數據、流處理,支持事件時間處理、時間窗口操作,可以用於實時監控、數據ETL (提取、轉換、加載) 等。
  • ProcessFunction:ProcessFunctions 可以直接對應用程式中的 eventsstatetimers 進行控制,能用來實現複雜的事件處理邏輯,特別適合需要狀態管理和時間控制的場景。

補充說明:
Flink 還有另一個核心 API:DataSet API (Legacy),用來處理有界數據、批處理,但在 1.12 版後就被軟棄用了 ,官方建議直接用 SQL / Table API 來進行批處理操作。

函式庫

  • Complex Event Processing (CEP):CEP 可以與 DataStream API 集成,用來識別和分析一些複雜的事件,適合用在需要即時響應、快速決策的場景。
  • Gelly:Flink 的圖形資料庫,提供許多圖形算法,包括最短路徑、連通性、PageRank 等算法。
  • FlinkML:Flink 的機器學習庫,和 Spark MLlib 一樣提供了一個分散式模型的 solution,另外因為 Flink 是流處理框架,所以也支持實時的機器學習。

預告

明天是進入 Flink 的安裝與配置教學!

參考資料

Apache Flink Documentation


上一篇
Day21 - Flink 介紹 (1):簡介、架構、數據處理
下一篇
Day23 - Flink 安裝與設置
系列文
30天認識主流大數據框架:Hadoop + Spark + Flink30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言