- Apache Flink 教程
- Apache Flink - 首頁
- Apache Flink - 大資料平臺
- 批處理與即時處理
- Apache Flink - 簡介
- Apache Flink - 架構
- Apache Flink - 系統需求
- Apache Flink - 設定/安裝
- Apache Flink - API 概念
- Apache Flink - 表格 API 和 SQL
- 建立 Flink 應用程式
- Apache Flink - 執行 Flink 程式
- Apache Flink - 庫
- Apache Flink - 機器學習
- Apache Flink - 使用案例
- Apache Flink - Flink 與 Spark 與 Hadoop 的比較
- Apache Flink - 結論
- Apache Flink 資源
- Apache Flink - 快速指南
- Apache Flink - 有用資源
- Apache Flink - 討論
Apache Flink - 架構
Apache Flink 基於 Kappa 架構。Kappa 架構擁有一個單一的處理器 - 流,它將所有輸入都視為流,流引擎即時處理資料。在 Kappa 架構中,批處理資料是流處理的一種特殊情況。
下圖顯示了Apache Flink 架構。
Kappa 架構的關鍵思想是透過單個流處理引擎來處理批處理和即時資料。
大多數大資料框架都基於 Lambda 架構,Lambda 架構對批處理和流式資料使用單獨的處理器。在 Lambda 架構中,您擁有用於批處理和流檢視的單獨程式碼庫。為了查詢和獲取結果,需要合併這些程式碼庫。維護單獨的程式碼庫/檢視併合並它們是一件痛苦的事情,但 Kappa 架構解決了這個問題,因為它只有一個檢視 - 即時檢視,因此不需要合併程式碼庫。
這並不意味著 Kappa 架構取代了 Lambda 架構,它完全取決於用例和應用程式,以決定哪種架構更可取。
下圖顯示了 Apache Flink 作業執行架構。
程式
它是您在 Flink 叢集上執行的一段程式碼。
客戶端
它負責獲取程式碼(程式)並構建作業資料流圖,然後將其傳遞給 JobManager。它還檢索作業結果。
JobManager
在從客戶端接收作業資料流圖後,它負責建立執行圖。它將作業分配給叢集中的 TaskManager 並監督作業的執行。
TaskManager
它負責執行 JobManager 分配的所有任務。所有 TaskManager 都在指定的並行度下各自的槽中執行任務。它負責將任務狀態傳送給 JobManager。
Apache Flink 的特性
Apache Flink 的特性如下:
它擁有一個流處理器,可以執行批處理和流程式。
它可以以閃電般的速度處理資料。
提供 Java、Scala 和 Python 的 API。
為所有常用操作提供 API,程式設計師非常易於使用。
以低延遲(納秒級)和高吞吐量處理資料。
具有容錯性。如果節點、應用程式或硬體發生故障,不會影響叢集。
可以輕鬆與 Apache Hadoop、Apache MapReduce、Apache Spark、HBase 和其他大資料工具整合。
可以自定義記憶體管理以獲得更好的計算效能。
它具有高度可擴充套件性,可以在叢集中擴充套件到數千個節點。
Apache Flink 中的視窗功能非常靈活。
提供圖處理、機器學習、複雜事件處理庫。