

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# StartJobRun API를 통해 Spark SQL 스크립트 실행
<a name="emr-eks-jobs-spark-sql-parameters"></a>

Amazon EMR on EKS 릴리스 6.7.0 이상에는 `StartJobRun` API를 통해 Spark SQL 스크립트를 실행할 수 있도록 Spark SQL 작업 드라이버가 포함되어 있습니다. 기존 Spark SQL 스크립트를 수정하지 않고도 `StartJobRun` API를 사용하여 Amazon EMR on EKS에서 Spark SQL 쿼리를 직접 실행하도록 SQL 진입점 파일을 제공할 수 있습니다. 다음 테이블에는 StartJobRun API를 통해 Spark SQL 작업에 지원되는 Spark 파라미터가 나와 있습니다.

다음 Spark 파라미터 중에서 Spark SQL 작업에 전송할 파라미터를 선택할 수 있습니다. 이러한 파라미터를 사용하여 기본 Spark 속성을 재정의합니다.


| 옵션 | 설명 | 
| --- | --- | 
| --name NAME | 애플리케이션 이름 | 
| --jars JARS | 드라이버 및 실행 클래스 경로에 포함할 jar의 쉼표로 구분된 목록. | 
| --packages | 드라이버 및 실행기 클래스 경로에 포함할 jar의 maven 좌표에 대한 쉼표로 구분된 목록. | 
| --exclude-packages | 종속 항목 충돌을 피하기 위해 -packages에서 제공하는 종속 항목을 해결하는 동안 제외할 쉼표로 구분된 groupId:artifactId 목록. | 
| --repositories | -packages로 지정된 maven 좌표를 검색하기 위한 추가 원격 리포지토리의 쉼표로 구분된 목록. | 
| --files FILES | 각 실행기의 작업 디렉터리에 배치할 쉼표로 구분된 파일 목록. | 
| --conf PROP=VALUE | Spark 구성 속성. | 
| --properties-file FILE | 추가 속성을 로드할 파일의 경로. | 
| --driver-memory MEM | 드라이버의 메모리. 기본 1,024MB. | 
| --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}}"
      }
    }
  }
}
```