什麼是 AKS 上的 Azure HDInsight 中的 Apache Flink®? (預覽)
重要
AKS 上的 Azure HDInsight 於 2025 年 1 月 31 日淘汰。 透過此公告 深入瞭解。
您必須將工作負載移轉至 Microsoft Fabric 或對等 Azure 產品,以避免突然終止工作負載。
重要
這項功能目前為預覽狀態。 Microsoft Azure 預覽版的補充使用規定 包含適用於 Beta 版、預覽版或尚未正式發行之 Azure 功能的更合法條款。 如需此特定預覽的相關資訊,請參閱 AKS 上的 Azure HDInsight 預覽資訊。 如需問題或功能建議,請提交要求 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 使用案例 所述的常見用例 以深入瞭解更多
AKS 上的 HDInsight 中的 Apache Flink 叢集是完全受控的服務。 這裡列出在 AKS 上的 HDInsight 中建立 Flink 叢集的優點。
特徵 | 描述 |
---|---|
輕鬆建立 | 您可以使用 Azure 入口網站、Azure PowerShell 或 SDK,在數分鐘內在 HDInsight 中建立新的 Flink 叢集。 請參閱 在 AKS 上開始使用 HDInsight 中的 Apache Flink 叢集。 |
易於使用 | AKS 上的 HDInsight Flink 叢集包括基於入口網站的組態管理以及擴展功能。 除了使用作業管理 API 之外,您還可以使用 REST API 或 Azure 入口網站來管理作業。 |
REST API | AKS 上 HDInsight 中的 Flink 叢集包括 作業管理 API,這是 REST API 型 Flink 作業提交方法,可遠端提交和監視 Azure 入口網站上的工作。 |
部署類型 | Flink 可以在會話模式或應用程式模式中執行應用程式。 AKS 上的 HDInsight 目前僅支援會話叢集。 您可以在會話叢集上執行多個 Flink 作業。 HDInsight 在 AKS 叢集中的應用程式模式已在規劃中 |
支援Metastore | AKS 上 HDInsight 的 Flink 叢集可以支援不同開放檔格式的目錄,這些目錄包含 Hive Metastore,且具有可將遠端檢查點保存到 Azure Data Lake Storage Gen2 的功能。 |
Azure 記憶體的支援 | HDInsight 中的 Flink 叢集可以使用 Azure Data Lake Storage Gen2 作為檔案儲存端。 如需 Data Lake Storage Gen2 的詳細資訊,請參閱 Azure Data Lake Storage Gen2。 |
與 Azure 服務整合 | AKS 上的 HDInsight Flink 叢集具有與 Kafka 的整合,以及 Azure 事件中樞 和 Azure HDInsight的整合。 您可以使用事件中樞或 HDInsight 來建置串流應用程式。 |
適應性 | AKS 上的 HDInsight 可讓您使用自動調整功能,根據排程擴展或縮減 Flink 叢集節點。 請參閱 在 AKS 叢集上自動調整 Azure HDInsight。 |
狀態管理後端 | AKS 上的 HDInsight 會使用 RocksDB 做為預設 StateBackend。 RocksDB 是用於快速儲存的嵌入式持續性鍵值存放區。 |
檢查站 | 預設情況下,HDInsight 會在 AKS 叢集上啟用檢查點。 在 AKS 上的 HDInsight 的預設設定會將最後五個檢查點保存在持久性儲存中。 如果您的作業失敗,可以從最新的檢查點重新啟動作業。 |
增量檢查點 | RocksDB 支援增量檢查點。 建議您針對大型狀態使用累加檢查點,您必須手動啟用此功能。 在您的 flink-conf.yaml: state.backend.incremental: true 中設定預設值會啟用累加檢查點,除非應用程式會在程式代碼中覆寫此設定。 預設情況下,此語句為正確。 您也可以直接在程式代碼中設定此值(覆寫設定預設值),EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true); 。 根據預設,我們會在設定的檢查點 dir 中保留最後五個檢查點。 變更組態管理區段上的組態 state.checkpoints.num-retained: 5 ,即可變更此值 |
AKS 上 HDInsight 中的 Apache Flink 叢集包含下列元件,這些元件預設可在叢集上使用。
請參閱 藍圖,了解有什麼即將推出!
Apache Flink 作業管理
Flink 會使用三個分散式元件、作業管理員、工作管理員和作業用戶端來排程作業,這些元件會以 Leader-Follower 模式設定。
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) 商標。