一文帶你了解 Flink 的基本組件棧


作為實時計算領域的佼佼者,Flink 的基本組件同樣值得我們仔細研究。

Flink 同樣遵循着分層的架構設計理念,在降低系統耦合的同時,也為上層用戶構建 Flink 應用提供了豐富且友好的接口。

Flink 分層架構,從上到下依次是:API & Libraries 層、Runtime 核心層 和 物理部署層

API & Libraries 層

作為分布式數據處理框架,Flink 同時提供了支撐流計算和批計算的接口,同時在此基礎上抽象出不同的應用類型的組件庫,如基於流處理的 CEP (復雜事件處理庫),SQL & TABLE 庫 和 基於批處理的 FlinkML(機器學習庫),Gelly(圖處理庫)等。

API 層包括構建流計算應用的 DataStream API 和批計算應用的 DataSet API,兩者都是提供給用戶豐富的數據處理高級 API,例如 Map,FlatMap 等,同時也提供比較低級的 Process Function API ,用戶可以直接操作狀態和時間等底層數據。

Runtime 核心層

該層主要負責對上層不同接口提供基礎服務,也是 Flink 分布式計算框架的核心實現層,支持分布式 Stream 作業的執行、JobGraph 到 ExecutionGraph 的映射轉換、任務調度等。

將 DataStream 和 DataSet 轉成統一的可執行的 Task Operator,達到在流式引擎下同時處理批量計算和流式計算的目的

物理部署層

該層主要涉及 Flink 的部署模式,目前 Flink 支持多種部署模式:本地、集群(Standalone / YARN)、雲(GCE / EC2)、kubenetes。

flink 能夠通過該層支持不同平台的部署,用戶可以根據需要選擇使用對應的部署模式。

 

更多精彩,關注微信公眾號:黑科技部落

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM