本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 EMR上設定 Amazon 的垂直自動擴展 EKS
當您透過 提交 Amazon EMR Spark StartJobRun 任務時,可以設定垂直自動擴展API。在 Spark 驅動程式 Pod 中設定自動擴展相關組態參數,如 使用垂直自動擴展功能提交 Spark 作業 中的範例所示。
Amazon EMR on EKS vertical Autoscaling 運算子會接聽具有自動擴展的驅動程式 Pod,然後設定與 Kubernetes Vertical Pod Autoscaler (VPA) 的整合,並在驅動程式 Pod 上設定。這有助於 Spark 執行程式 Pod 的資源追蹤和自動擴展。
下列各節說明您在為 Amazon EKS叢集設定垂直自動擴展時可以使用的參數。
注意
將功能切換參數設定為標籤,並將其餘參數設定為 Spark 驅動程式 Pod 中的註釋。自動擴展參數屬於 emr-containers.amazonaws.com/
域,並具有 dynamic.sizing
字首。
必要參數
提交作業時,必須在 Spark 作業驅動程式中包含下列兩個參數:
金錀 | 描述 | 接受的值 | 預設值 | Type | Spark 參數1 |
---|---|---|---|---|---|
|
功能切換 |
|
未設定 |
label |
|
|
作業簽章 |
string |
未設定 |
註釋 |
|
1 在 ConfigurationOverride
中使用此參數作為 SparkSubmitParameter
或 StartJobRun
API。
-
dynamic.sizing
- 可以使用dynamic.sizing
標籤開啟和關閉垂直自動擴展功能。若要開啟垂直自動擴展,請在 Spark 驅動程式 Pod 中將dynamic.sizing
設定為true
。如果省略此標籤或將其設定為除true
以外的任何值,垂直自動擴展功能會關閉。 -
dynamic.sizing.signature
- 在驅動程式 Pod 中設定含有dynamic.sizing.signature
注釋的作業簽章。垂直自動擴展會在 Amazon EMR Spark 任務的不同執行中彙總資源用量資料,以取得資源建議。您可以提供唯一識別符,以便將作業繫結在一起。注意
如果作業以固定間隔 (例如每日或每週) 重複出現,則作業簽章對於作業的每個新執行個體都應保持不變。這可確保垂直自動擴展功能可以計算和彙總作業的不同執行中的建議。
1 在 ConfigurationOverride
中使用此參數作為 SparkSubmitParameter
或 StartJobRun
API。
選用的參數
垂直自動擴展也支援下列選用參數。將它們設定為驅動程式 Pod 中的注釋。
金錀 | 描述 | 接受的值 | 預設值 | Type | Spark 參數1 |
---|---|---|---|---|---|
垂直自動擴展模式 |
|
|
註釋 |
|
|
啟用記憶體擴展 |
|
|
註釋 |
|
|
開啟或關閉CPU擴展 |
|
|
註釋 |
|
|
記憶體擴展的下限 |
字串,K8s 資源數量1G |
未設定 |
註釋 |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min |
|
記憶體擴展的上限 |
字串,K8s 資源數量4G |
未設定 |
註釋 |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max |
|
CPU 擴展的下限 |
字串,K8s 資源數量1 |
未設定 |
註釋 |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min |
|
CPU 擴展的最大限制 |
字串,K8s 資源數量2 |
未設定 |
註釋 |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max |
垂直自動擴展模式
mode
參數會映射到 VPA支援的不同自動擴展模式。使用驅動程式 Pod 上的 dynamic.sizing.mode
註釋來設定模式。此參數支援下列值:
-
關閉 – 試轉模式,您可以在該模式中監控建議,但不會執行自動擴展。這是垂直自動擴展的預設模式。在此模式中,相關聯的垂直 Pod 自動擴展器資源會計算建議,您可以透過 kubectl、Prometheus 和 Grafana 等工具監控建議。
-
初始 – 在此模式下,如果根據任務的歷史執行提供建議,例如在重複執行任務的情況下,工作開始時, VPA 會自動調整資源規模。
-
自動 – 在此模式下, VPA 會逸出 Spark 執行器 Pod,並在 Spark 驅動程式 Pod 重新啟動時,使用建議的資源設定自動調整規模。有時, VPA 會逃避執行 Spark 執行器 Pod,因此當重試中斷的執行器時,可能會導致額外的延遲。
資源擴展
設定垂直自動擴展時,您可以選擇是否要擴展CPU和記憶體資源。將 dynamic.sizing.scale.cpu
和 dynamic.sizing.scale.memory
註釋設定為 true
或 false
。根據預設,CPU擴展會設為 false
,記憶體擴展會設為 true
。
資源最小值和最大值 (邊界)
您也可以選擇性地設定 CPU和 記憶體資源的界限。啟用自動擴展時,請為這些具有 dynamic.sizing.[memory/cpu].[min/max]
註釋的資源選擇最小值和最大值。根據預設,資源沒有限制。將註釋設定為代表 Kubernetes 資源數量的字串值。例如,將 dynamic.sizing.memory.max
設定為 4G
,表示 4 GB。