

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

# 使用管理作业运行 Amazon CLI
<a name="emr-eks-jobs-CLI"></a>

本主题介绍如何使用 Amazon Command Line Interface (Amazon CLI) 管理作业运行。其中详细介绍了安全参数、驱动程序和各种覆盖设置等属性。还包括一些子课题，涵盖了配置日志记录的各种方法。

**Topics**
+ [配置任务运行的选项](#emr-eks-jobs-parameters)
+ [配置任务运行以使用 Amazon S3 日志](emr-eks-jobs-s3.md)
+ [将任务运行配置为使用 Amazon CloudWatch 日志](emr-eks-jobs-cloudwatch.md)
+ [列出任务运行](#emr-eks-jobs-list)
+ [描述任务运行](#emr-eks-jobs-describe)
+ [取消任务运行](#emr-eks-jobs-cancel)

## 配置任务运行的选项
<a name="emr-eks-jobs-parameters"></a>

使用以下选项配置任务运行参数：
+ `--execution-role-arn`：您必须提供用于运行任务的 IAM 角色。有关更多信息，请参阅 [将任务执行角色与 Amazon EMR on EKS 结合使用](iam-execution-role.md)。
+ `--release-label`：您可以使用 Amazon EMR 5.32.0 和 6.2.0 及更高版本部署 Amazon EMR on EKS。以前的 Amazon EMR 版本不支持 Amazon EMR on EKS。有关更多信息，请参阅 [Amazon EMR on EKS 版本](emr-eks-releases.md)。
+ `--job-driver`：任务驱动程序用于为主要任务提供输入。这是一个联合类型字段，您只能传递要运行的任务类型值之一。支持的任务类型包括：
  + Spark 提交任务 - 用于通过 Spark 提交运行命令。你可以使用这种作业类型通过 Spark Submit 运行 Scala、 PySpark、SparkR、sparkSQL 和任何其他支持的作业。此任务类型具有以下参数：
    + Entrypoint-这是对你要运行的主 jar/py 文件的 HCFS（兼容 Hadoop 的文件系统）的引用。
    + EntryPointArguments -这是您要传递给主 jar/py 文件的参数数组。您应该使用 Entrypoint 代码来处理读取这些参数。数组中的每个参数都应用逗号分隔。 EntryPointArguments 不能包含方括号或圆括号，例如 ()、\$1\$1 或 []。
    + SparkSubmitParameters -这些是您要发送给任务的其他 spark 参数。使用此参数可覆盖默认的 Spark 属性，例如驱动程序内存、—conf 或 —class 等执行程序的数量。有关更多信息，请参阅[使用 spark-submit 启动应用程序](https://spark.apache.org/docs/latest/submitting-applications.html#launching-applications-with-spark-submit)。
  + Spark SQL 任务 - 用于通过 Spark SQL 运行 SQL 查询文件。您可以使用此任务类型运行 SparkSQL 任务。此任务类型具有以下参数：
    + Entrypoint - 这是 HCFS（兼容 Hadoop 的文件系统）对要运行的 SQL 查询文件的引用。

      有关可用于 Spark SQL 任务的其他 Spark 参数的列表，请参阅 [通过 StartJobRun API 运行 Spark SQL 脚本](emr-eks-jobs-spark-sql-parameters.md)。
+ `--configuration-overrides`：您可以为应用程序提供配置对象以覆盖默认配置。您可以使用简写语法提供配置，或可引用 JSON 文件中的配置对象。配置对象包含分类、属性和可选的嵌套配置。属性由您希望在该文件中覆盖的设置组成。您可以在一个 JSON 对象中为多个应用程序指定多个分类。可用的配置分类因 Amazon EMR 发行版而异。有关 Amazon EMR 每个发行版可用的配置分类列表，请参阅[Amazon EMR on EKS 版本](emr-eks-releases.md)。

  如果在应用程序覆盖和 Spark 提交参数中传递相同的配置，则 Spark 提交参数优先。完整的配置优先级列表如下，按最高优先级到最低优先级的顺序排列。
  + 创建 `SparkSession` 时提供的配置。
  + 使用 `—conf` 作为 `sparkSubmitParameters` 的一部分提供的配置。
  + 作为应用程序覆盖的一部分提供的配置。
  + Amazon EMR 为发行版选择的优化配置。
  + 应用程序的默认开源配置。

  要使用 Amazon CloudWatch 或 Amazon S3 监控任务运行，您必须提供配置的详细信息 CloudWatch。有关更多信息，请参阅[配置任务运行以使用 Amazon S3 日志](emr-eks-jobs-s3.md)和[将任务运行配置为使用 Amazon CloudWatch 日志](emr-eks-jobs-cloudwatch.md)。如果 S3 存储桶或 CloudWatch 日志组不存在，则 Amazon EMR 会在将日志上传到存储桶之前创建该存储桶或日志组。
+ 有关 Kubernetes 配置选项的其它列表，请参阅 [Kubernetes 中的 Spark 属性](https://spark.apache.org/docs/latest/running-on-kubernetes.html#configuration)。

  不支持以下 Spark 配置。
  + `spark.kubernetes.authenticate.driver.serviceAccountName`
  + `spark.kubernetes.authenticate.executor.serviceAccountName`
  + `spark.kubernetes.namespace`
  + `spark.kubernetes.driver.pod.name`
  + `spark.kubernetes.container.image.pullPolicy`
  + `spark.kubernetes.container.image`
**注意**  
您可以将 `spark.kubernetes.container.image` 用于自定义 Docker 镜像。有关更多信息，请参阅 [为 Amazon EMR on EKS 自定义 Docker 镜像](docker-custom-images.md)。

## 列出任务运行
<a name="emr-eks-jobs-list"></a>

您可以运行 `list-job-run` 以显示任务运行的状态，如以下示例所示。

```
aws emr-containers list-job-runs --virtual-cluster-id <cluster-id>
```

## 描述任务运行
<a name="emr-eks-jobs-describe"></a>

您可以运行 `describe-job-run` 来获取有关任务的更多详细信息，如任务状态、状态详细信息和任务名称，如以下示例所示。

```
aws emr-containers describe-job-run --virtual-cluster-id cluster-id --id job-run-id
```

## 取消任务运行
<a name="emr-eks-jobs-cancel"></a>

您可以运行 `cancel-job-run` 以取消正在运行的任务，如以下示例所示。

```
aws emr-containers cancel-job-run --virtual-cluster-id cluster-id --id job-run-id
```