什麼是 Azure HDInsight on AKS 中的 Apache Flink®? (預覽)
注意
AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。
在淘汰日期之前,只有基本支援可用。
重要
此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。
Apache Flink 是一種架構和分散式處理引擎,可用於透過未繫結和已繫結資料流進行具狀態計算。 Flink 已設計為可在所有常見的叢集環境中執行、以記憶體內部速度和任何規模執行計算和具狀態串流應用程式。 應用程式會平行處理成可能成千上萬的工作,這些工作會在叢集中分散並同時執行。 因此,應用程式可以使用無限數量的 vCPU、主要記憶體、磁碟和網路 IO。 此外,Flink 可以輕鬆地維護大型應用程式狀態。 其非同步和增量檢查點演算法可確保處理延遲的影響最小,同時保證僅一次的一致性狀態。
Apache Flink 是用於串流處理可大幅調整的分析引擎。
Flink 提供的一些主要功能包括:
- 已繫結和未繫結資料流上的作業
- 記憶體效能
- 串流和批次計算的能力
- 低延遲、高輸送量作業
- 剛好一次處理
- 高可用性
- 狀態和容錯
- 與 Hadoop 生態系統完全相容
- 適用於串流和批次的整合 SQL API
為什麼使用 Apache Flink?
Apache Flink 是開發及執行許多不同類型的應用程式的絕佳選擇,因為其具有廣泛的功能集。 Flink 的功能包括支援串流和批次處理、複雜的狀態管理、事件時間處理語意,以及僅一次的一致性狀態保證。 Flink 沒有單一失敗點。 Flink 已證明是擴展到數千個核心和數 TB 的應用程式狀態,提供高輸送量和低延遲,並為世界上最嚴苛的串流處理應用程式提供支援。
- 詐騙偵測:Flink 可透過對串流資料套用複雜的規則和機器學習模型,即時偵測詐騙交易或活動。
- 異常偵測:Flink 可用來識別串流資料中的極端值或異常模式,例如感應器讀數、網路流量或使用者行為。
- 基於規則的警示:Flink 可用來根據預先定義的條件或串流資料閾值來觸發警示或通知,例如溫度、壓力或股價。
- 商務程序監視:Flink 可用來即時追蹤和分析商務程序或工作流程的狀態和效能,例如訂單履行、交付或客戶服務。
- Web 應用程式 (社交網路):Flink 可用來為需要即時處理使用者產生的資料的 Web 應用程式提供支援,例如訊息、讚、評論或建議。
深入了解有關 Apache Flink 使用案例的常見使用案例
HDInsight on AKS 中的 Apache Flink 叢集是完全受控服務。 以下列出在 HDInsight on AKS 中建立 Flink 叢集的優點。
功能 | 描述 |
---|---|
輕鬆建立 | 您可以使用 Azure 入口網站、Azure PowerShell 或 SDK,在幾分鐘內便能於 HDInsight 中建立新的 Flink 叢集。 請參閱開始使用 HDInsight on AKS 中的 Apache Flink 叢集。 |
使用方便 | HDInsight on AKS 中的 Flink 叢集包括入口網站型組態管理和調整。 除了使用作業管理 API 之外,還可以使用 REST API 或 Azure 入口網站來管理作業。 |
REST API | HDInsight on AKS 中的 Flink 叢集包括作業管理 API,這是 REST API 型 Flink 作業提交方法,用於在 Azure 入口網站上遠端提交和監視作業。 |
部署類型 | Flink 可以在工作階段模式或應用程式模式中執行應用程式。 目前,HDInsight on AKS 僅支援工作階段叢集。 您可以在工作階段叢集上執行多個 Flink 作業。 應用程式模式位於 HDInsight on AKS 叢集的藍圖上 |
支援中繼存放區 | HDInsight on AKS 上的 Flink 叢集可支援具有 Hive 中繼存放區的目錄,這些目錄採用遠端檢查點到 Azure Data Lake Storage Gen2 的不同開放檔格式。 |
Azure 儲存體的支援 | HDInsight 中的 Flink 叢集可以使用 Azure Data Lake Storage Gen2 作為檔案接收器。 如需 Data Lake Storage Gen2 的詳細資訊,請參閱 Azure Data Lake Storage Gen2。 |
Azure 服務整合 | HDInsight on AKS 上的 Flink 叢集與 Kafka 以及 Azure 事件中樞和 Azure HDInsight 整合。 您可以使用事件中樞或 HDInsight 建立串流應用程式。 |
適應性 | HDInsight on AKS 可讓您使用自動調整功能,根據排程調整 Flink 叢集節點。 請參閱自動調整 Azure HDInsight on AKS 叢集。 |
狀態後端 | HDInsight on AKS 使用 RocksDB 作為預設 StateBackend。 RocksDB 是用於快速儲存的可內嵌永續性索引鍵-值存放區。 |
檢查點 | 依預設會在 HDInsight on AKS 叢集上啟用檢查點。 HDInsight on AKS 上的預設設定會維護永續性儲存體中的最後五個檢查點。 如果作業失敗,可以從最新的檢查點重新啟動作業。 |
增量檢查點 | RocksDB 支援增量檢查點。 我們建議針對大型狀態使用增量檢查點,但必須手動啟用此功能。 在 flink-conf.yaml: state.backend.incremental: true 中設定預設值會啟用增量檢查點,除非應用程式在程式碼中覆寫此設定。 此陳述式依預設為 true。 您也可以直接在程式碼中設定此值 (覆寫設定預設值) EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true); 。 根據預設,我們會在設定的檢查點 dir 中保留最後五個檢查點。 可以透過變更組態管理區段上的設定來變更此值 state.checkpoints.num-retained: 5 |
根據預設,HDInsight on AKS 中的 Apache Flink 叢集可透過叢集提供下列元件。
有關即將推出的內容,請參閱藍圖!
Apache Flink 作業管理
Flink 會使用三個分散式元件 (作業管理員、工作管理員和作業用戶端) 來排程作業,這些元件會以「領導者-追蹤者」模式設定。
Flink 作業:Flink 作業或程式包含多個工作。 工作是 Flink 中執行的基本單位。 每個 Flink 工作都有多個執行個體,視平行處理原則層級而定,而且每個執行個體都在 TaskManager 上執行。
作業管理員:作業管理員會充當排程器,為工作管理員上的工作進行排程。
工作管理員:工作管理器隨附一或多個位置,以平行方式執行工作。
作業用戶端:作業用戶端會與作業管理員通訊以提交 Flink 作業
Flink Web UI:Flink 功能 Web UI,可檢查、監視及偵錯執行中的應用程式。
參考
- Apache Flink 網站
- Apache、Apache Kafka、Kafka、Apache Flink、Flink 和相關聯的開放原始碼專案名稱是 Apache Software Foundation (ASF) 的商標。