

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EMR on EKS 的垂直自动扩展入门
<a name="jobruns-vas-gs"></a>

如果您希望自动调整内存和 CPU 资源以适应 Amazon EMR Spark 应用程序工作负载，则对 Amazon EMR on EKS 使用垂直自动扩缩功能。有关更多信息，请参阅[使用垂直自动扩缩功能处理 Amazon EMR Spark 作业](jobruns-vas.html)。

## 使用垂直自动扩展功能提交 Spark 任务
<a name="jobruns-vas-spark-submit"></a>

当您通过 [StartJobRun](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html)API 提交任务时，请将以下两个配置添加到驱动程序中，以便您的 Spark 作业开启垂直自动缩放：

```
"spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing":"true",
"spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature":"YOUR_JOB_SIGNATURE"
```

在上面的代码中，第一行启用了垂直自动扩展功能。下一行是必需的签名配置，可让您为任务选择签名。

有关这些配置和可接受的参数值的更多信息，请参阅 [配置 Amazon EMR on EKS 的垂直自动扩展](jobruns-vas-configure.md)。默认情况下，任务在垂直自动扩展的仅限监控**关闭**模式下提交。这种监控状态可让您在不执行自动扩展的情况下计算并查看资源建议。有关更多信息，请参阅 [垂直自动扩展模式](jobruns-vas-configure.md#jobruns-vas-parameters-opt-mode)。

以下示例说明如何使用垂直自动扩展来完成 `start-job-run` 示例命令：

```
aws emr-containers start-job-run \
--virtual-cluster-id $VIRTUAL_CLUSTER_ID \
--name $JOB_NAME \
--execution-role-arn $EMR_ROLE_ARN \
--release-label emr-6.10.0-latest \
--job-driver '{
  "sparkSubmitJobDriver": {
     "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py"
   }
 }' \
--configuration-overrides '{
    "applicationConfiguration": [{
        "classification": "spark-defaults",
        "properties": {
          "spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing": "true",
          "spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature": "test-signature"
        }
    }]
  }'
```

## 验证垂直自动扩展功能
<a name="jobruns-vas-verify"></a>

要验证已提交任务的垂直自动扩展功能是否正常工作，请使用 kubectl 获取 `verticalpodautoscaler` 自定义资源并查看扩展建议。例如，以下命令会查询 [使用垂直自动扩展功能提交 Spark 任务](#jobruns-vas-spark-submit) 部分中有关示例任务的建议：

```
kubectl get verticalpodautoscalers --all-namespaces \
-l=emr-containers.amazonaws.com/dynamic.sizing.signature=test-signature
```

此查询的输出应类似以下内容：

```
NAME                                                          MODE   CPU         MEM PROVIDED   AGE
ds-jceyefkxnhrvdzw6djum3naf2abm6o63a6dvjkkedqtkhlrf25eq-vpa   Off    3304504865  True           87m
```

如果输出内容与此不相似或包含错误代码，请参阅 [对 Amazon EMR on EKS 垂直自动扩展进行问题排查](troubleshooting-vas.md)，了解有助于解决问题的操作步骤。