檢閱 Apache Flink 應用程式資源的受管理服務 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢閱 Apache Flink 應用程式資源的受管理服務

本節說明應用程式使用的系統資源。了解 Managed Service for Apache Flink 如何佈建和使用資源,將協助您設計、建立和維護高效能且穩定的 Managed Service for Apache Flink 應用程式。

阿帕奇 Flink 應用程式資源的管理服務

適用於 Apache Flink 的受管理服務是一項 AWS 服務,可為您的 Apache Flink 應用程式建立一個環境。適用於 Apache Flink 服務的受管理服務會使用稱為 Kinesis 處理單元 () KPUs 的單位來提供資源。

其中一個KPU代表下列系統資源:

  • 一個CPU核心

  • 4 GB 的記憶體,其中 1 GB 是本機記憶體,3 GB 是堆積記憶體

  • 50 GB 的可用磁碟空間

KPUs在不同的執行單元中執行應用程式,稱為工作子工作。你可以將一個子任務視為等效於一個執行緖。

應用程式KPUs可用的數目等於應用程式的Parallelism設定,除以應用程式的ParallelismPerKPU設定。

如需應用程式平行處理的詳細資訊,請參閱 在 Apache Flink 的受管理服務中實作應用程式調整

Apache Flink 環境會使用稱為任務空位的單元為應用程式配置資源。當 Apache Flink 的受管理服務為您的應用程式配置資源時,它會將一個或多個 Apache Flink 任務插槽指派給單一位置。KPU分配給單個插槽的數量等KPU於您的應用程序的ParallelismPerKPU設置。如需有關 Job 位置的詳細資訊,請參閱 Apache Flink 文件中的作業排程

您可以設定運算子可以使用的最大子任務數目。此值稱為運算子平行處理層級。依預設,應用程式中每個運算子的平行處理層級與應用程式的平行處理層級相同。這表示依預設,應用程式中的每個運算子都可以視需要使用應用程式中所有可用的子任務。

您可以使用 setParallelism 方法設定應用程式中運算子的平行處理層級。使用此方法,您可以控制每個運算子一次可以使用的子任務數目。

如需有關運算子的詳細資訊,請參閱 Apache Flink 文件中的運算子

通常,每個運算子都使用單獨的子任務來執行,但是如果多個運算子始終按順序執行,則執行期可以將它們全部分配給相同的任務。這個過程稱為運算子鏈結

如果幾個循序運算子都對相同的資料進行操作,則可以鏈接到單個任務中。以下是實現這一點所需要的一些條件:

  • 運算子執行 1 對 1 簡單轉發。

  • 所有運算子具有相同的平行處理層級。

應用程式將運算子鏈結到單一子任務中時,可以節省系統資源,因為服務不需要執行網路作業,也不需要為每個運算子配置子任務。若要判斷您的應用程式是否使用運算子鏈結,請查看 Managed Service for Apache Flink 主控台中的作業圖表。應用程式中的每個頂點代表一或多個運算子。此圖表顯示已鏈結為單一頂點的運算子。