什麼是 AKS 上的 Azure HDInsight 中的 Apache Flink®? (預覽)

重要

此功能目前為預覽功能。 適用於 Microsoft Azure 預覽版的補充使用規定包含適用於 Beta 版、預覽版或尚未發行至正式運作之 Azure 功能的更合法條款。 如需此特定預覽的相關信息,請參閱 AKS 預覽資訊的 Azure HDInsight。 如需問題或功能建議,請在 AskHDInsight提交要求,並提供詳細數據,並遵循我們在 Azure HDInsight 社群取得更多更新。

Apache Flink 是一種架構和分散式處理引擎,可用於透過未繫結和限定數據流進行具狀態計算。 Flink 的設計目的是在所有常見的叢集環境中執行、以記憶體內部速度及任何規模執行計算和具狀態串流應用程式。 應用程式會平行處理成可能成千上萬的工作,這些工作會分散並同時在叢集中執行。 因此,應用程式可以使用無限數量的 vCPU、主要記憶體、磁碟和網路 IO。 此外,Flink 可以輕鬆地維護大型應用程式狀態。 其異步和累加檢查點檢查演算法可確保處理延遲的影響最小,同時保證一次狀態一致性。

Apache Flink 是可大幅調整的串流處理分析引擎。

Flink 提供的一些主要功能包括:

  • 繫結和未繫結資料流上的作業
  • 記憶體效能
  • 串流和批次計算的能力
  • 低延遲、高輸送量作業
  • 僅處理一次
  • 高可用性
  • 狀態和容錯
  • 與 Hadoop 生態系統完全相容
  • 適用於數據流和批次的整合SQL API

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 作業。 應用程式模式位於 AKS 叢集上的 HDInsight 藍圖上
支援中繼存放區 AKS 上 HDInsight 中的 Flink 叢集可支援 Hive 中繼存放區目錄,且具有遠端檢查點到 Azure Data Lake 儲存體 Gen2 的不同開放檔格式。
Azure 儲存體的支援 HDInsight 中的 Flink 叢集可以使用 Azure Data Lake 儲存體 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 是快速儲存體的可內嵌持續性索引鍵/值存放區。
檢查點 根據預設,AKS 叢集上的 HDInsight 會啟用檢查點。 AKS 上的 HDInsight 上的預設設定會維護持續性記憶體中的最後五個檢查點。 如果您的作業失敗,可以從最新的檢查點重新啟動作業。
累加檢查點 RocksDB 支援累加檢查點。 建議您針對大型狀態使用累加檢查點,您必須手動啟用此功能。 在您的 flink-conf.yaml: state.backend.incremental: true 中設定預設值會啟用累加檢查點,除非應用程式在程式碼中覆寫此設定。 根據預設,此陳述式為 True。 您也可以直接在程式代碼中設定此值(覆寫設定預設值)。 EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true); 根據預設,在直接設定的檢查點中我們會保留最後五個檢查點。 變更組態管理區段上的組態,即可變更此值 state.checkpoints.num-retained: 5

AKS 上 HDInsight 中的 Apache Flink 叢集包含下列元件,這些元件預設可在叢集上使用。

請參閱即將推出的藍圖

Flink 會使用三個分散式元件、作業管理員、工作管理員和作業用戶端來排程作業,這些元件會以「領導者-追蹤者」模式設定。

Flink 作業:Flink 作業或程式是由多個工作所組成。 工作是 Flink 中執行的基本單位。 每個 Flink 工作都有多個實例,視平行處理原則層級而定,而且每個實例都會在 TaskManager 上執行。

作業管理員:作業管理員會做為排程器,並排程任務管理器上的工作。

任務管理員:任務管理器隨附一或多個位置,以平行方式執行工作。

作業客戶端:作業用戶端會與作業管理員通訊以提交 Flink 作業

Flink Web UI:Flink 功能 Web UI 可檢查、監視和執行中應用程式的偵錯。

Flink 程式圖表顯示作業、作業管理員、工作管理員和作業用戶端如何一起運作。

參考