選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 Managed Service for Apache Flink 中實作應用程式擴展

焦點模式
在 Managed Service for Apache Flink 中實作應用程式擴展 - Managed Service for Apache Flink

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

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

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

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

您可以為 Amazon Managed Service for Apache Flink 設定任務的平行執行和資源配置,以實作擴展。如需 Apache Flink 如何排程任務平行執行個體的詳細資訊,請參閱 Apache Flink 文件中的平行執行

設定應用程式平行處理和ParallelismPerKPU

您可以使用下列 ParallelismConfiguration 屬性,為 Managed Service for Apache Flink 應用程式任務 (例如從來源讀取或執行運算子) 設定平行執行:

  • Parallelism:使用此屬性可設定預設的 Apache Flink 應用程式平行處理層級。除非在應用程式的程式碼中覆寫,否則所有運算子、來源和接收器都按此平行處理層級執行。預設值為 1,最大值為 256

  • ParallelismPerKPU:使用此屬性設定依應用程式每 Kinesis 處理單元 (KPU) 可排程的平行任務數目。預設值為 1,最大值為 8。對於具有封鎖作業 (例如 I/O) 的應用程式,較高的 ParallelismPerKPU 值會導致 KPU 資源的完整使用率。

注意

Parallelism 的限制等於 KPU 的限制 ParallelismPerKPU 乘以 (預設值為 64)。KPU 限制可透過請求提高限制來增加。如需如何請求提高限制的指示,請參閱 Service Quotas 中的「請求提高限制」。

如需為特定運算子設定任務平行處理的資訊,請參閱 Apache Flink 文件中的設定平行處理:運算子。

配置 Kinesis 處理單元

Managed Service for Apache Flink 以 KPU 的形式佈建容量。單一 KPU 可為您提供 1 個 vCPU 和 4 GB 的記憶體。針對每個配置的 KPU,還會提供 50 GB 的執行中應用程式儲存體。

Managed Service for Apache Flink 會使用 ParallelismParallelismPerKPU 屬性計算執行應用程式所需的 KPU,如下所示:

Allocated KPUs for the application = Parallelism/ParallelismPerKPU

Managed Service for Apache Flink 可快速提供應用程式資源,以因應輸送量或處理活動尖峰。它會在活動尖峰過去後逐漸從應用程式中移除資源。若要停用資源的自動配置,請將 AutoScalingEnabled 值設定為 false,如稍後 更新應用程式的平行處理 中所述。

應用程式的 KPU 預設限制為 64。如需如何請求提高此限制的指示,請參閱 Service Quotas 中的「請求提高限制」。

注意

額外的 KPU 需要為了協同運作目的付費。如需詳細資訊,請參閱 Managed Service for Apache Flink 定價

更新應用程式的平行處理

本節包含設定應用程式平行處理之 API 動作的範例請求。如需如何將請求區塊與 API 動作搭配使用的更多範例和指示,請參閱Managed Service for Apache Flink API 範例程式碼

CreateApplication 動作的下列請求範例會在您建立應用程式時設定平行處理:

{ "ApplicationName": "string", "RuntimeEnvironment":"FLINK-1_18", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "AutoScalingEnabled": "true", "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } } } }

UpdateApplication 動作的下列請求範例會為現有的應用程式時設定平行處理:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }

UpdateApplication 動作的下列請求範例會為現有的應用程式時停用平行處理:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }

maxParallelism 考量

Flink 任務可以擴展的最大平行處理,受限於任務maxParallelism所有運算子的最小值。例如,如果您有一個簡單的任務,只有來源和接收,而來源的 為 maxParallelism 16,而接收的 為 8,則應用程式無法擴展到超過 8 的平行處理。

若要了解如何計算運算子maxParallelism的預設值,以及如何覆寫預設值,請參閱 Apache Flink 相加中的設定平行處理上限

作為基本規則,請注意,如果您未maxParallelism為任何運算子定義 ,且您以小於或等於 128 的平行處理啟動應用程式,則所有運算子maxParallelism的 都將是 128。

注意

任務的最大平行處理是擴展應用程式保留狀態的平行處理上限。

如果您修改maxParallelism現有應用程式,應用程式將無法從先前使用舊 拍攝的快照重新啟動maxParallelism。您只能在沒有快照的情況下重新啟動應用程式。

如果您計劃將應用程式擴展到大於 128 的平行處理,則必須maxParallelism在應用程式中明確設定 。

  • Autoscaling 邏輯可防止將 Flink 任務擴展到超過任務最大平行處理的平行處理。

  • 如果您使用自訂自動擴展或排程擴展,請加以設定,以免超過任務的最大平行處理。

  • 如果您手動將應用程式擴展到超過最大平行處理,則應用程式無法啟動。

下一個主題:

使用自動擴展

上一個主題:

已知問題
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。