

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

# Amazon EMR on EKS 작업 실행 관리
<a name="emr-eks-jobs-manage"></a>

다음 섹션에서는 Amazon EMR on EKS 작업 실행을 관리하는 데 도움이 되는 주제를 다룹니다. 여기에는 사용 시 작업 실행 파라미터 구성 AWS CLI, 로그 데이터 저장 방법 구성, Spark SQL 스크립트를 실행하여 쿼리 실행, 작업 실행 상태 이해, 작업 모니터링 방법 파악이 포함됩니다. 데이터를 처리하기 위해 작업 실행을 설정하고 완료하려는 경우 일반적으로 순서대로 이러한 주제를 수행할 수 있습니다.

**Topics**
+ [를 사용하여 작업 실행 관리 AWS CLI](emr-eks-jobs-CLI.md)
+ [StartJobRun API를 통해 Spark SQL 스크립트 실행](emr-eks-jobs-spark-sql-parameters.md)
+ [작업 실행 상태](emr-eks-jobs-states.md)
+ [Amazon EMR 콘솔에서 작업 보기](emr-eks-jobs-console.md)
+ [작업 실행 시 발생하는 일반적인 오류](emr-eks-jobs-error.md)

# 를 사용하여 작업 실행 관리 AWS CLI
<a name="emr-eks-jobs-CLI"></a>

이 주제에서는 AWS Command Line Interface ()를 사용하여 작업 실행을 관리하는 방법을 다룹니다AWS CLI. 보안 파라미터, 드라이버 및 다양한 재정의 설정과 같은 속성을 자세히 설명합니다. 로깅을 구성하는 다양한 방법을 다루는 하위 주제도 포함되어 있습니다.

**Topics**
+ [작업 실행 구성 옵션](#emr-eks-jobs-parameters)
+ [Amazon S3 로그를 사용하도록 작업 실행 구성](emr-eks-jobs-s3.md)
+ [Amazon CloudWatch Logs를 사용하도록 작업 실행 구성](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 on EKS는 이전 Amazon EMR 릴리스 버전에서 지원되지 않습니다. 자세한 내용은 [Amazon EMR on EKS 릴리스](emr-eks-releases.md) 단원을 참조하십시오.
+ `--job-driver`: 작업 드라이버는 기본 작업에 대한 입력을 제공하는 데 사용됩니다. 실행하려는 작업 유형에 대한 값 중 하나만 전달할 수 있는 집합 유형 필드입니다. 다음은 지원되는 유형입니다.
  + Spark 제출 작업 - Spark 제출을 통해 명령을 실행하는 데 사용됩니다. 이 작업 유형을 사용하여 Spark 제출을 통해 Scala, PySpark, SparkR, SparkSQL 및 기타 지원되는 작업을 실행할 수 있습니다. 이 작업 유형에는 다음과 같은 파라미터가 있습니다.
    + Entrypoint - 실행하려는 기본 jar/py 파일에 대한 Hadoop 호환 파일 시스템(HCFS) 참조입니다.
    + EntryPointArguments - 기본 jar/py 파일에 전달하려는 인수의 배열입니다. entrypoint 코드를 사용하여 이러한 파라미터를 읽는 작업을 처리해야 합니다. 배열의 각 인수는 쉼표로 분리해야 합니다. EntryPointArguments 인수에는 (), \$1\$1 또는 []와 같은 괄호를 포함할 수 없습니다.
    + SparkSubmitParameters - 작업에 전송하려는 추가 Spark 파라미터입니다. 이 파라미터를 사용하여 드라이버 메모리 및 실행기 수와 같은 기본 Spark 속성(예: -conf 또는 -class)을 재정의합니다. 자세한 내용은 [Launching Applications with spark-submit](https://spark.apache.org/docs/latest/submitting-applications.html#launching-applications-with-spark-submit)을 참조하세요.
  + Spark SQL 작업 - Spark SQL을 통해 SQL 쿼리 파일을 실행하는 데 사용됩니다. 이 작업 유형을 사용하여 SparkSQL 작업을 실행할 수 있습니다. 이 작업 유형에는 다음과 같은 파라미터가 있습니다.
    + Entrypoint - 실행하려는 SQL 쿼리 파일에 대한 Hadoop 호환 파일 시스템(HCFS) 참조입니다.

      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 Logs를 사용하도록 작업 실행 구성](emr-eks-jobs-cloudwatch.md) 섹션을 참조하세요. S3 버킷 또는 CloudWatch 로그 그룹이 없는 경우 Amazon EMR은 로그를 버킷에 업로드하기 전에 그룹을 생성합니다.
+ Kubernetes 구성 옵션의 추가 목록은 [Spark Properties on Kubernetes](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`를 사용할 수 있습니다. 자세한 내용은 [Amazon EMR on EKS에 대한 도커 이미지 사용자 지정](docker-custom-images.md) 단원을 참조하십시오.

# Amazon S3 로그를 사용하도록 작업 실행 구성
<a name="emr-eks-jobs-s3"></a>

작업 진행 상황을 모니터링하고 실패 문제를 해결하려면 Amazon S3, Amazon CloudWatch Logs 또는 둘 다로 로그 정보를 전송하도록 작업을 구성해야 합니다. 이 주제는 Amazon EMR on EKS에서 시작된 작업에 Amazon S3에 애플리케이션 로그를 게시하는 작업을 시작하는 데 도움이 됩니다.

**S3 로그 IAM 정책**

작업에서 Amazon S3로 로그 데이터를 전송하려면 먼저 작업 실행 역할에 대한 권한 정책에 다음 권한이 포함되어야 합니다. *amzn-s3-demo-logging-bucket*을 로깅 버킷의 이름으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Sid": "AllowS3Putobject"
    }
  ]
}
```

------

**참고**  
Amazon EMR on EKS는 Amazon S3 버킷을 생성할 수도 있습니다. Amazon S3 버킷을 사용할 수 없는 경우 IAM 정책에 `“s3:CreateBucket”` 권한을 포함합니다.

Amazon S3에 로그를 전송할 수 있는 적절한 권한을 실행 역할에 부여한 후 [를 사용하여 작업 실행 관리 AWS CLI](emr-eks-jobs-CLI.md)에서와 같이 `start-job-run` 요청의 `monitoringConfiguration` 섹션에 `s3MonitoringConfiguration`이 전달되면 로그 데이터가 다음 Amazon S3 위치로 전송됩니다.
+ 제출자 로그 - /*logUri*/*virtual-cluster-id*/jobs/*job-id*/containers/*pod-name*/(stderr.gz/stdout.gz)
+ 드라이버 로그 - /*logUri*/*virtual-cluster-id*/jobs/*job-id*/containers/*spark-application-id*/spark-*job-id*-driver/(stderr.gz/stdout.gz)
+ 실행기 로그 - /*logUri*/*virtual-cluster-id*/jobs/*job-id*/containers/*spark-application-id*/*executor-pod-name*/(stderr.gz/stdout.gz)

# Amazon CloudWatch Logs를 사용하도록 작업 실행 구성
<a name="emr-eks-jobs-cloudwatch"></a>

작업 진행 상황을 모니터링하고 실패 문제를 해결하려면 Amazon S3, Amazon CloudWatch Logs 또는 둘 다로 로그 정보를 전송하도록 작업을 구성해야 합니다. 이 주제는 Amazon EMR on EKS에서 시작된 작업에서 CloudWatch Logs를 사용하는 데 도움이 됩니다. CloudWatch Logs에 대한 자세한 정보는 Amazon CloudWatch 사용 설명서의 [로그 파일 모니터링](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)을 참조하세요.

**CloudWatch Logs IAM 정책**

작업에서 CloudWatch Log로 로그 데이터를 전송하려면 먼저 작업 실행 역할에 대한 권한 정책에 다음 권한이 포함되어야 합니다. *my\$1log\$1group\$1name* 및 *my\$1log\$1stream\$1prefix*를 각각 CloudWatch 로그 그룹 및 로그 스트림 이름으로 바꿉니다. 실행 역할 ARN에 적절한 권한이 있는 한, Amazon EMR on EKS는 로그 그룹과 로그 스트림이 없는 경우 해당 로그 그룹과 로그 스트림을 생성합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ],
      "Sid": "AllowLOGSCreatelogstream"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:my_log_group_name:log-stream:my_log_stream_prefix/*"
      ],
      "Sid": "AllowLOGSPutlogevents"
    }
  ]
}
```

------

**참고**  
Amazon EMR on EKS는 로그 스트림을 생성할 수도 있습니다. 로그 스트림이 없는 경우 IAM 정책에 `"logs:CreateLogGroup"` 권한이 포함되어야 합니다.

실행 역할에 적절한 권한을 부여한 후 [를 사용하여 작업 실행 관리 AWS CLI](emr-eks-jobs-CLI.md)에서와 같이 애플리케이션은 `start-job-run` 요청의 `monitoringConfiguration` 섹션에 `cloudWatchMonitoringConfiguration`이 전달되면 로그 데이터를 CloudWatch Logs로 보냅니다.

`StartJobRun` API에서 *log\$1group\$1name*은 CloudWatch의 로그 그룹 이름이고 *log\$1stream\$1prefix*는 CloudWatch의 로그 스트림 이름 접두사입니다. AWS Management Console에서 이러한 로그를 보고 검색할 수 있습니다.
+ 제출자 로그 - *logGroup*/*logStreamPrefix*/*virtual-cluster-id*/jobs/*job-id*/containers/*pod-name*/(stderr/stdout)
+ 드라이버 로그 - *logGroup*/*logStreamPrefix*/*virtual-cluster-id*/jobs/*job-id*/containers/*spark-application-id*/spark-*job-id*-driver/(stderrstdout)
+ 실행기 로그 - *logGroup*/*logStreamPrefix*/*virtual-cluster-id*/jobs/*job-id*/containers/*spark-application-id*/*executor-pod-name*/(stderr/stdout)

## 작업 실행 나열
<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
```

# 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"
      }
    }
  }
}
```

# 작업 실행 상태
<a name="emr-eks-jobs-states"></a>

Amazon EMR on EKS 작업 대기열에 작업을 제출하면 작업이 `PENDING` 상태로 전환됩니다. 그런 다음 작업은 성공(`0` 코드로 종료)하거나 실패(0이 아닌 코드로 종료)할 때까지 다음 상태를 통과합니다.

다음은 가능한 작업 실행 상태입니다.
+ `PENDING` - Amazon EMR on EKS에 작업 실행이 제출될 때 초기 작업 상태입니다. 작업이 가상 클러스터에 제출되기를 기다리고 있으며 Amazon EMR on EKS는 이 작업을 제출하기 위해 작업 중입니다.
+ `SUBMITTED` - 가상 클러스터에 성공적으로 제출된 작업 실행. 그러면 클러스터 스케줄러가 클러스터에서 이 작업을 실행하려고 시도합니다.
+ `RUNNING` - 가상 클러스터에서 실행 중인 작업 실행. Spark 애플리케이션에서 이는 Spark 드라이버 프로세스가 `running` 상태임을 의미합니다.
+ `FAILED` - 가상 클러스터에 제출하지 못했거나 성공적으로 완료되지 못한 작업 실행. 이 작업 실패에 대한 추가 정보를 찾으려면 StateDetails 및 FailureReason을 참조하세요.
+ `COMPLETED` ‐ 성공적으로 완료된 작업 실행.
+ `CANCEL_PENDING` - 취소가 요청된 작업 실행. Amazon EMR on EKS가 가상 클러스터에서 작업을 취소하려고 합니다.
+ `CANCELLED` - 취소된 작업 실행.

# Amazon EMR 콘솔에서 작업 보기
<a name="emr-eks-jobs-console"></a>

작업 실행 데이터는 볼 수 없으므로 각 작업이 상태를 통과할 때 모니터링할 수 있습니다. Amazon EMR 콘솔에서 작업을 보려면 다음 단계를 수행합니다.

1. Amazon EMR 콘솔 왼쪽 메뉴의 Amazon EMR on EKS에서 **가상 클러스터**를 선택합니다.

1. 가상 클러스터 목록에서 작업을 보려는 가상 클러스터를 선택합니다.

1. **작업 실행** 테이블에서 **로그 보기**를 선택하여 작업 실행의 세부 정보를 확인합니다.

**참고**  
원클릭 경험에 대한 지원은 기본적으로 활성화되어 있습니다. 작업 제출 중에 `monitoringConfiguration`에서 `persistentAppUI`를 `DISABLED`로 설정하여 이 기능을 끌 수 있습니다. 자세한 내용은 [영구 애플리케이션 사용자 인터페이스 보기](https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html)를 참조하세요.

# 작업 실행 시 발생하는 일반적인 오류
<a name="emr-eks-jobs-error"></a>

`StartJobRun` API를 실행할 때 다음 오류가 발생할 수 있습니다. 이 표에서는 각 오류를 나열하며, 문제를 빠르게 해결할 수 있도록 완화 단계를 제공합니다.


| 오류 메시지 | 오류 조건 | 권장되는 다음 단계 | 
| --- | --- | --- | 
|  error: argument --*argument* is required  | 필수 파라미터가 누락되었습니다. | 누락된 인수를 API 요청에 추가합니다. | 
| An error occurred (AccessDeniedException) when calling the StartJobRun operation: User: ARN is not authorized to perform: emr-containers:StartJobRun | 실행 역할이 누락되었습니다. | [Amazon EMR on EKS에서 작업 실행 역할 사용](iam-execution-role.md) 사용을 참조하세요. | 
|  An error occurred (AccessDeniedException) when calling the StartJobRun operation: User: *ARN* is not authorized to perform: emr-containers:StartJobRun  |  직접 호출자에게 조건 키를 통한 실행 역할[유효한 형식 또는 유효하지 않은 형식]에 대한 권한이 없습니다.  | [Amazon EMR on EKS에서 작업 실행 역할 사용](iam-execution-role.md)을(를) 참조하세요. | 
|  An error occurred (AccessDeniedException) when calling the StartJobRun operation: User: *ARN* is not authorized to perform: emr-containers:StartJobRun  |  Job 제출자와 실행 역할 ARN은 서로 다른 계정에 속해 있습니다.  | 작업 제출자와 실행 역할 ARN이 동일한 AWS 계정에서 생성되었는지 확인합니다. | 
|  1 validation error detected: Value *Role* at 'executionRoleArn' failed to satisfy the ARN regular expression pattern: ^arn:(aws[a-zA-Z0-9-]\$1):iam::(\$1d\$112\$1)?:(role((\$1u002F)\$1(\$1u002F[\$1u0021-\$1u007F]\$1\$1u002F))[\$1w\$1=,.@-]\$1)  |  직접 호출자는 조건 키를 통해 실행 역할에 대한 권한을 갖지만 역할이 ARN 형식의 제약 조건을 충족하지 않습니다.  | ARN 형식 뒤에 실행 역할을 제공합니다. [Amazon EMR on EKS에서 작업 실행 역할 사용](iam-execution-role.md)을(를) 참조하세요. | 
|  An error occurred (ResourceNotFoundException) when calling the StartJobRun operation: Virtual cluster *Virtual Cluster ID* doesn't exist.  |  가상 클러스터 ID를 찾을 수 없습니다.  | Amazon EMR on EKS에 등록된 가상 클러스터 ID를 제공합니다. | 
|  An error occurred (ValidationException) when calling the StartJobRun operation: Virtual cluster state *state* is not valid to create resource JobRun.  |  가상 클러스터에서 작업을 실행할 준비가 되지 않았습니다.  | [가상 클러스터 상태](virtual-cluster.md#virtual-cluster-states)을(를) 참조하세요. | 
|  An error occurred (ResourceNotFoundException) when calling the StartJobRun operation: Release *RELEASE* doesn't exist.  |  작업 제출에 지정된 릴리스가 올바르지 않습니다.  | [Amazon EMR on EKS 릴리스](emr-eks-releases.md)을(를) 참조하세요. | 
|  An error occurred (AccessDeniedException) when calling the StartJobRun operation: User: *ARN* is not authorized to perform: emr-containers:StartJobRun on resource: *ARN* with an explicit deny. An error occurred (AccessDeniedException) when calling the StartJobRun operation: User: *ARN* is not authorized to perform: emr-containers:StartJobRun on resource: *ARN*  | 사용자에게 StartJobRun을 호출할 권한이 없습니다. | [Amazon EMR on EKS에서 작업 실행 역할 사용](iam-execution-role.md)을(를) 참조하세요. | 
|  An error occurred (ValidationException) when calling the StartJobRun operation: configurationOverrides.monitoringConfiguration.s3MonitoringConfiguration.logUri failed to satisfy constraint : %s  |  S3 경로 URI 구문이 유효하지 않습니다.  | logUri는 s3://... 형식이어야 함  | 

작업을 실행하기 전에 `DescribeJobRun` API를 실행할 때 다음 오류가 발생할 수 있습니다.


| 오류 메시지 | 오류 조건 | 권장되는 다음 단계 | 
| --- | --- | --- | 
|  상태 세부 정보: JobRun 제출이 실패했습니다. Classification *classification* not supported. failureReason: VALIDATION\$1ERROR state: FAILED.  | StartJobRun의 파라미터가 유효하지 않습니다. | [Amazon EMR on EKS 릴리스](emr-eks-releases.md)을(를) 참조하세요. | 
|  stateDetails: Cluster *EKS Cluster ID* does not exist. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  | EKS 클러스터를 사용할 수 없습니다. | EKS 클러스터가 존재하고 올바른 권한을 보유하는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  상태 세부 정보: 클러스터 *EKS 클러스터 ID에* 충분한 권한이 없습니다. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  |  Amazon EMR에는 EKS 클러스터에 액세스할 권한이 없습니다.  | 등록된 네임스페이스에서 Amazon EMR에 대한 권한이 설정되어 있는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  stateDetails: Cluster *EKS Cluster ID* is currently not reachable. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  |  EKS 클러스터에 연결할 수 없습니다.  | EKS 클러스터가 존재하고 올바른 권한을 보유하는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  stateDetails: JobRun submission failed due to an internal error. failureReason: INTERNAL\$1ERROR state: FAILED  |  EKS 클러스터에서 내부 오류가 발생했습니다.  | 해당 사항 없음 | 
|  stateDetails: Cluster *EKS Cluster ID* does not have sufficient resources. failureReason: USER\$1ERROR state: FAILED  |  EKS 클러스터의 리소스가 부족하여 작업을 실행할 수 없습니다.  | EKS 노드 그룹에 용량을 추가하거나 EKS Autoscaler를 설정합니다. 자세한 내용은 [Cluster Autoscaler](https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html)를 참조하세요. | 

작업을 실행한 후에 `DescribeJobRun` API를 실행할 때 다음 오류가 발생할 수 있습니다.


| 오류 메시지 | 오류 조건 | 권장되는 다음 단계 | 
| --- | --- | --- | 
|  stateDetails: JobRun을 모니터링하는 동안 문제가 발생했습니다. Cluster *EKS Cluster ID* does not exist. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  | EKS 클러스터가 존재하지 않습니다. | EKS 클러스터가 존재하고 올바른 권한을 보유하는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  stateDetails: JobRun을 모니터링하는 동안 문제가 발생했습니다. Cluster *EKS Cluster ID* does not have sufficient permissions. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  | Amazon EMR에는 EKS 클러스터에 액세스할 권한이 없습니다. | 등록된 네임스페이스에서 Amazon EMR에 대한 권한이 설정되어 있는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  stateDetails: JobRun을 모니터링하는 동안 문제가 발생했습니다. Cluster *EKS Cluster ID* is currently not reachable. failureReason: CLUSTER\$1UNAVAILABLE state: FAILED  |  EKS 클러스터에 연결할 수 없습니다.  | EKS 클러스터가 존재하고 올바른 권한을 보유하는지 확인합니다. 자세한 내용은 [Amazon EMR on EKS 설정](setting-up.md) 단원을 참조하십시오. | 
|  stateDetails: Trouble monitoring your JobRun due to an internal error failureReason: INTERNAL\$1ERROR state: FAILED  |  내부 오류가 발생하여 JobRun 모니터링을 수행할 수 없습니다.  | 해당 사항 없음 | 

작업을 시작할 수 없고 작업이 제출됨 상태에서 15분 동안 대기하는 경우 다음 오류가 발생할 수 있습니다. 클러스터 리소스가 부족하기 때문일 수 있습니다.


| 오류 메시지 | 오류 조건 | 권장되는 다음 단계 | 
| --- | --- | --- | 
|  cluster timeout  | 작업이 제출됨 상태로 15분 이상 지속되었습니다. | 아래 표시된 구성 재정의로 이 파라미터의 기본 설정인 15분을 재정의할 수 있습니다. | 

다음 구성을 사용하여 클러스터 제한 시간 설정을 30분으로 변경합니다. 새 `job-start-timeout` 값은 초 단위로 제공합니다.

```
{
"configurationOverrides": {
  "applicationConfiguration": [{
      "classification": "emr-containers-defaults",
      "properties": {
          "job-start-timeout":"1800"
      }
  }]
}
```