啟用應用程式自動調整

並非一律可以預先預估 Spark 應用程式的資源需求 (Spark 執行程式數目),因為這些需求可能根據輸入資料集的大小而有所不同。

為了在此狀況下協助您,您可以提交具有自動調整功能的 Spark 應用程式,這將根據應用程式的需求自動決定應用程式所需的執行程式數目。 您可以透過將配置設定 ae.spark.autoscale.enable=true 新增至現有應用程式配置,來啟用 Spark 應用程式的基本自動調整。

提交具有基本自動調整大小的應用程式

提交已啟用自動調整大小的應用程式的步驟,與提交應用程式而不自動調整大小的步驟相同。 唯一的差異是您需要將配置設定 ae.spark.autoscale.enable=true 新增至應用程式有效負載。

  1. 提交 Spark 應用程式
  2. 使用下列範例 JSON 有效負載作為範例,以啟用基本自動調整大小:
    {
      "application_details": {
        "application": "/opt/ibm/spark/examples/src/main/python/wordcount.py",
        "arguments": ["/opt/ibm/spark/examples/src/main/resources/people.txt"]
       },
       "conf": {
         "ae.spark.autoscale.enable":"true"
       }
    }
    

自動調整應用程式配置

您可以使用下列配置設定來進一步控制自動調整執行程式數目。

自動縮放的配置設定
配置設定 說明 預設值
ae.spark.autoscale.enable 表示應用程式將根據應用程式的需求及所設定的任何其他自動調整配置來自動調整。 如果在實例層次指定,則實例中的所有應用程式都會自動調整。 False
spark.dynamicAllocation.initialExecutors 指定要建立的執行程式起始數目,而不論 Spark 應用程式所提出的任何需求 0
spark.dynamicAllocation.minExecutors 指定要維護的執行程式數目下限,而不論 Spark 應用程式的任何需求 0
spark.dynamicAllocation.maxExecutors 指定要建立的執行程式數目上限 (與 Spark 應用程式的任何需求無關) 2
ae.spark.autoscale.scaleupDemandPercentage 指定應用程式自動調整程式應履行的 Spark 應用程式所需執行程式百分比。 例如,如果在特定階段,Spark 應用程式要求 10 個執行程式,且此配置的值設為 50%,則應用程式自動調整程式會依 5 個執行程式來擴增執行程式數目。 此配置的預設值是 100%,基本上表示應用程式自動調整程式可以新增應用程式需求所要求的任何執行程式數目。 100
ae.spark.autoscale.scaledownExcessPercentage 指定 Spark 應用程式所保留且要由應用程式自動調整程式移除的閒置執行程式百分比。 例如,如果在 Spark 應用程式中完成某個階段之後,應用程式已保留 20 個閒置執行程式,且此配置的值設為 25%,則應用程式自動調整程式會將應用程式中的執行程式縮減 4 個執行程式。 此配置的預設值是 100%,表示應用程式自動調整程式可以縮減所有閒置執行程式。 100
ae.spark.autoscale.frequency 應用程式自動調整程式在應用程式中擴增執行程式或縮減執行程式的頻率 (以秒為單位)。 10s

自動調整應用程式有效負載的範例,顯示應用程式可擴增或縮減至的執行程式數目的下限及上限。

{
  "application_details": {
    "application": "cos://<application-bucket-name>.<cos-reference-name>/my_spark_application.py",
    "conf": {
      "ae.spark.autoscale.enable": "true",
      "spark.dynamicAllocation.initialExecutors": "0",
      "spark.dynamicAllocation.minExecutors": "1",
      "spark.dynamicAllocation.maxExecutors": "10",
      "spark.hadoop.fs.cos.<cos-reference-name>.endpoint": "s3.direct.us-south.cloud-object-storage.appdomain.cloud",
      "spark.hadoop.fs.cos.<cos-reference-name>.iam.api.key": "<iam-api-key-of-application-bucket>"
    }
  }
}

在實例上啟用自動調整大小

依預設,當您建立 Analytics Engine Standard 無伺服器方案的實例時,會停用應用程式自動調整。 如果您想要在實例層次啟用所有應用程式的自動調整大小,則可以在建立實例時明確設定 "ae.spark.autoscale.enable": "true" 作為預設 Spark 配置。 請參閱 預設 Spark 配置