使用 AWS CLI 管理任务运行
本主题介绍了如何使用 AWS Command Line Interface(AWS CLI)管理作业运行。其中详细介绍了安全参数、驱动程序和各种覆盖设置等属性。还包括一些子课题,涵盖了配置日志记录的各种方法。
配置任务运行的选项
使用以下选项配置任务运行参数:
-
--execution-role-arn
:您必须提供用于运行任务的 IAM 角色。有关更多信息,请参阅 将任务执行角色与 Amazon EMR on EKS 结合使用。 -
--release-label
:您可以使用 Amazon EMR 5.32.0 和 6.2.0 及更高版本部署 Amazon EMR on EKS。以前的 Amazon EMR 版本不支持 Amazon EMR on EKS。有关更多信息,请参阅 Amazon EMR on EKS 版本。 -
--job-driver
:任务驱动程序用于为主要任务提供输入。这是一个联合类型字段,您只能传递要运行的任务类型值之一。支持的任务类型包括:-
Spark 提交任务 - 用于通过 Spark 提交运行命令。您可以使用此任务类型,通过 Spark 提交运行 Scala、PySpark、SparkR、SparkSQL 和任何其他受支持的任务。此任务类型具有以下参数:
-
Entrypoint - 这是 HCFS(兼容 Hadoop 的文件系统)对要运行的主 jar/py 文件的引用。
-
EntryPointArguments - 这是您想要传递给主 jar /py 文件的参数数组。您应该使用 Entrypoint 代码来处理读取这些参数。该数组中的每个参数都应该用逗号分隔。EntryPointArguments 不能包含方括号或圆括号,例如 ()、{} 或 []。
-
SparkSubmitParameters - 这些是您希望向任务发送的更多 Spark 参数。使用此参数可覆盖默认的 Spark 属性,例如驱动程序内存、—conf 或 —class 等执行程序的数量。有关更多信息,请参阅使用 spark-submit 启动应用程序
。
-
-
Spark SQL 任务 - 用于通过 Spark SQL 运行 SQL 查询文件。您可以使用此任务类型运行 SparkSQL 任务。此任务类型具有以下参数:
-
Entrypoint - 这是 HCFS(兼容 Hadoop 的文件系统)对要运行的 SQL 查询文件的引用。
有关可用于 Spark SQL 任务的其他 Spark 参数的列表,请参阅 通过 StartJobRun API 运行 Spark SQL 脚本。
-
-
-
--configuration-overrides
:您可以为应用程序提供配置对象以覆盖默认配置。您可以使用简写语法提供配置,或可引用 JSON 文件中的配置对象。配置对象包含分类、属性和可选的嵌套配置。属性由您希望在该文件中覆盖的设置组成。您可以在一个 JSON 对象中为多个应用程序指定多个分类。可用的配置分类因 Amazon EMR 发行版而异。有关 Amazon EMR 每个发行版可用的配置分类列表,请参阅Amazon EMR on EKS 版本。如果在应用程序覆盖和 Spark 提交参数中传递相同的配置,则 Spark 提交参数优先。完整的配置优先级列表如下,按最高优先级到最低优先级的顺序排列。
-
创建
SparkSession
时提供的配置。 -
使用
—conf
作为sparkSubmitParameters
的一部分提供的配置。 -
作为应用程序覆盖的一部分提供的配置。
-
Amazon EMR 为发行版选择的优化配置。
-
应用程序的默认开源配置。
要使用 Amazon CloudWatch 或 Amazon S3 监控任务运行,您必须提供 CloudWatch 的配置详细信息。有关更多信息,请参阅配置任务运行以使用 Amazon S3 日志和配置任务运行以使用 Amazon CloudWatch Logs。如果 S3 存储桶或 CloudWatch 日志组不存在,则 Amazon EMR 会先创建二者中的一个,然后再将日志上载到存储桶。
-
-
有关 Kubernetes 配置选项的其它列表,请参阅 Kubernetes 中的 Spark 属性
。 不支持以下 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 镜像。
-
列出任务运行
您可以运行 list-job-run
以显示任务运行的状态,如以下示例所示。
aws emr-containers list-job-runs --virtual-cluster-id <cluster-id>
描述任务运行
您可以运行 describe-job-run
来获取有关任务的更多详细信息,如任务状态、状态详细信息和任务名称,如以下示例所示。
aws emr-containers describe-job-run --virtual-cluster-id
cluster-id
--idjob-run-id
取消任务运行
您可以运行 cancel-job-run
以取消正在运行的任务,如以下示例所示。
aws emr-containers cancel-job-run --virtual-cluster-id
cluster-id
--idjob-run-id