

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

# 通过 StartJobRun API 运行 Spark SQL 脚本
<a name="emr-eks-jobs-spark-sql-parameters"></a>

Amazon EMR on EKS 6.7.0 及更高版本包含一个 Spark SQL 任务驱动程序，可让您通过 `StartJobRun` API 运行 Spark SQL 脚本。您可以提供 SQL 入口点文件，以使用 `StartJobRun` API 在 Amazon EMR on EKS 上直接运行 Spark SQL 查询，而无需对现有 Spark SQL 脚本进行任何修改。下表列出了通过 StartJobRun API 支持 Spark SQL 作业的 Spark 参数。

您可以选择以下 Spark 参数发送到 Spark SQL 任务。使用这些参数覆盖默认 Spark 属性。


| 选项 | 描述 | 
| --- | --- | 
|  --name NAME  | 应用程序名称 | 
| -jars JARS | 以逗号分隔的 jar 列表，这些元素包含在驱动程序和执行程序的类路径中。 | 
| --packages | 以逗号分隔的 jar 的 maven 坐标列表，这些坐标包含在驱动程序和执行程序的类路径中。 | 
| --exclude-packages | 以逗号分隔的 groupId:artifactId 列表，在解析 –packages 中提供的依赖项时要排除这些元素以避免依赖项冲突。 | 
| --repositories | 以逗号分隔的其他远程存储库列表，用于搜索 –packages 给出的 maven 坐标。 | 
| --files FILES | 以逗号分隔的文件列表，这些文件放置在每个执行器的工作目录中。 | 
| --conf PROP=VALUE | Spark 配置属性。 | 
| --properties-file FILE | 从中加载额外属性的文件的路径。 | 
| --driver-memory MEM | 驱动程序的内存。默认值为 1024MB。 | 
| --driver-java-options | 传递给驱动程序的额外 Java 选项。 | 
| --driver-library-path | 传递给驱动程序的额外库路径条目。 | 
| --driver-class-path | 传递给驱动程序的额外类路径条目。 | 
| --executor-memory MEM | 每个执行器的内存。默认为 1GB。 | 
| --driver-cores NUM | 驱动程序使用的内核数。 | 
| --total-executor-cores NUM | 所有执行器的内核总数。 | 
| --executor-cores NUM | 每个执行程序使用的内核数。 | 
| --num-executors NUM | 要启动的执行程序数。 | 
| -hivevar <key=value> | 适用于 Hive 命令的变量替换，例如 -hivevar A=B | 
| -hiveconf <property=value> | 用于给定属性的值。 | 

对于 Spark SQL 作业，请创建一个 start-job-run-request .json 文件并指定作业运行所需的参数，如以下示例所示：

```
{
  "name": "myjob", 
  "virtualClusterId": "123456",  
  "executionRoleArn": "iam_role_name_for_job_execution", 
  "releaseLabel": "emr-6.7.0-latest", 
  "jobDriver": {
    "sparkSqlJobDriver": {
      "entryPoint": "entryPoint_location",
       "sparkSqlParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
    }
  }, 
  "configurationOverrides": {
    "applicationConfiguration": [
      {
        "classification": "spark-defaults", 
        "properties": {
          "spark.driver.memory":"2G"
         }
      }
    ], 
    "monitoringConfiguration": {
      "persistentAppUI": "ENABLED", 
      "cloudWatchMonitoringConfiguration": {
        "logGroupName": "my_log_group", 
        "logStreamNamePrefix": "log_stream_prefix"
      }, 
      "s3MonitoringConfiguration": {
        "logUri": "s3://my_s3_log_location"
      }
    }
  }
}
```