

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

# 작업 제출자 분류 사용
<a name="emr-eks-job-submitter"></a>

## 개요
<a name="emr-eks-job-submitter-overview"></a>

Amazon EMR on EKS `StartJobRun` 요청은 Spark 드라이버를 생성하기 위해 *작업 제출자* 포드(*job-runner* 포드라고도 함)를 생성합니다. `emr-job-submitter` 분류를 사용하여 노드 선택기를 구성하고, 허용 오차를 추가하고, 로깅을 사용자 지정하고, 작업 제출자 포드를 기타 수정할 수 있습니다.

`emr-job-submitter` 분류에서 사용할 수 있는 설정은 다음과 같습니다.

** `jobsubmitter.node.selector.[{{selectorKey}}]` **  
키 {{selectorKey}} 및 값을 구성 값으로 사용하여 작업 제출자 포드의 노드 선택기에를 추가합니다. 예를 들어를 ` jobsubmitter.node.selector.identifier`로 설정할 수 `myIdentifier` 있으며 작업 제출자 포드에는 키`identifier`와 값이 있는 노드 선택기가 있습니다`myIdentifier`. 이는 작업 제출자 포드를 배치할 수 있는 노드를 지정하는 데 사용할 수 있습니다. 여러 노드 선택기 키를 추가하려면 이 접두사를 사용하여 여러 구성을 설정합니다.

** `jobsubmitter.label.[{{labelKey}}]` **  
key {{labelKey}} 및 값을 구성 값으로 사용하여 작업 제출자 포드의 레이블에를 추가합니다. 여러 레이블을 추가하려면이 접두사를 사용하여 여러 구성을 설정합니다.

** `jobsubmitter.annotation.[{{annotationKey}}]` **  
작업 제출자 포드의 주석에 키 {{annotationKey}} 및 값을 구성 값으로 사용하여 추가합니다. 여러 주석을 추가하려면이 접두사를 사용하여 여러 구성을 설정합니다.

** `jobsubmitter.node.toleration.[{{tolerationKey}}]` **  
작업 제출자 포드에 [ 허용치를](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) 추가합니다. 기본적으로 포드에 추가된 허용 오차는 없습니다. 톨러레이션의 키는 {{tolerationKey}}이고 톨러레이션의 값은 구성 값입니다. 구성 값이 비어 있지 않은 문자열로 설정된 경우 연산자는가 됩니다`Equals`. 구성 값이 로 설정된 경우 연산`""`자는가 됩니다`Exists`.

** `jobsubmitter.node.toleration.[{{tolerationKey}}].[{{effect}}]` **  
접두사가 붙은 {{tolerationKey}} 효과를 추가합니다. 이 필드는 허용치를 추가할 때 필요합니다. 효과 필드에 허용되는 값은 ` NoExecute`, `NoSchedule`및 입니다`PreferNoSchedule`.

** `jobsubmitter.node.toleration.[{{tolerationKey}}].[{{tolerationSeconds}}]` **  
tolerationKey 접두사에 tolerationSeconds를 추가합니다. {{tolerationKey}} 선택 필드입니다. 효과가 인 경우에만 적용됩니다`NoExecute`.

** `jobsubmitter.scheduler.name` **  
작업 제출자 포드에 대한 사용자 지정 schedulerName 설정합니다.

** `jobsubmitter.logging` **  
작업 제출자 포드에 대한 로깅을 활성화하거나 비활성화합니다. 이 값이 로 설정되면 작업 제출자 포드에서 ` DISABLED` 로깅 컨테이너가 제거되어 `s3MonitoringConfiguration` 또는 `monitoringConfiguration`와 같이에 지정된이 포드에 대한 로깅이 비활성화됩니다`cloudWatchMonitoringConfiguration`. 이 설정이 설정되지 않았거나 다른 값으로 설정된 경우 작업 제출자 포드에 대한 로깅이 활성화됩니다.

** `jobsubmitter.logging.image` **  
작업 제출자 포드의 로깅 컨테이너에 사용할 사용자 지정 이미지를 설정합니다.

** `jobsubmitter.logging.request.cores` **  
작업 제출자 포드의 로깅 컨테이너에 대한 CPU 수의 사용자 지정 값을 CPU 단위로 설정합니다. 기본적으로 이 값은 **100m**로 설정되어 있습니다.

** `jobsubmitter.logging.request.memory` **  
작업 제출자 포드의 로깅 컨테이너에 대한 메모리 양에 대한 사용자 지정 값을 바이트 단위로 설정합니다. 기본적으로 이 값은 **200Mi**로 설정되어 있습니다. 메비바이트는 메가바이트와 유사한 측정 단위입니다.

** `jobsubmitter.container.image` **  
작업 제출자 포드의 `job-runner` 컨테이너에 대한 사용자 지정 이미지를 설정합니다.

** `jobsubmitter.container.image.pullPolicy` **  
작업 제출자 포드의 컨테이너에 대한 [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)를 설정합니다.

작업 제출자 포드는 온디맨드 인스턴스에 배치하는 것이 좋습니다. 작업 제출자 포드를 스팟 인스턴스에 배치하면 작업 제출자 포드가 실행되는 인스턴스에서 스팟 인스턴스 중단이 발생하는 경우 작업이 실패할 수 있습니다. [작업 제출자 포드를 단일 가용 영역에 배치하거나 노드에 적용되는 Kubernetes 레이블을 사용할 수도 있습니다](#emr-eks-job-submitter-ex-ec2).

## 작업 제출자 분류 예제
<a name="emr-eks-job-submitter-examples"></a>

**Topics**
+ [작업 제출자 포드의 온디맨드 노드 배치를 포함한 `StartJobRun` 요청](#emr-eks-job-submitter-ex-od)
+ [`StartJobRun` 작업 제출자 포드에 대한 단일 AZ 노드 배치 및 Amazon EC2 인스턴스 유형 배치를 사용한 요청](#emr-eks-job-submitter-ex-ec2)
+ [`StartJobRun` 작업 제출자 포드에 대한 레이블, 주석 및 사용자 지정 스케줄러가 포함된 요청](#emr-eks-job-submitter-label-annotation-scheduler)
+ [`StartJobRun` 키 , 값 `dedicated`, 효과 `graviton_machines`, 60초`tolerationSeconds`의 `NoExecute`가 있는 작업 제출자 포드에 허용 오차가 적용된 요청](#emr-eks-job-submitter-tolerations)
+ [`StartJobRun` 작업 제출자 포드에 대해 로깅이 비활성화된 요청](#emr-eks-job-submitter-logging-disabled)
+ [`StartJobRun` 작업 제출자 포드에 대한 사용자 지정 로깅 컨테이너 이미지, CPU 및 메모리를 사용한 요청](#emr-eks-job-submitter-custom)
+ [`StartJobRun` 사용자 지정 작업 제출자 컨테이너 이미지 및 풀 정책을 사용한 요청](#emr-eks-job-submitter-custom-container)

### 작업 제출자 포드의 온디맨드 노드 배치를 포함한 `StartJobRun` 요청
<a name="emr-eks-job-submitter-ex-od"></a>

```
cat >spark-python-in-s3-nodeselector-job-submitter.json << EOF
{
  "name": "spark-python-in-s3-nodeselector", 
  "virtualClusterId": "{{virtual-cluster-id}}", 
  "executionRoleArn": "{{execution-role-arn}}", 
  "releaseLabel": "{{emr-6.11.0-latest}}", 
  "jobDriver": {
    "sparkSubmitJobDriver": {
      "entryPoint": "s3://{{S3-prefix}}/trip-count.py", 
      "sparkSubmitParameters": "--conf spark.driver.cores=5  --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6"
    }
  }, 
  "configurationOverrides": {
    "applicationConfiguration": [
      {
        "classification": "spark-defaults", 
        "properties": {
          "spark.dynamicAllocation.enabled":"false"
        }
      },
      {
        "classification": "emr-job-submitter",
        "properties": {
          "jobsubmitter.node.selector.eks.amazonaws.com/capacityType": "ON_DEMAND"
        }
      }
    ], 
    "monitoringConfiguration": {
      "cloudWatchMonitoringConfiguration": {
        "logGroupName": "/emr-containers/jobs", 
        "logStreamNamePrefix": "demo"
      }, 
      "s3MonitoringConfiguration": {
        "logUri": "s3://joblogs"
      }
    }
  }
}
EOF
aws emr-containers start-job-run --cli-input-json file:///spark-python-in-s3-nodeselector-job-submitter.json
```

### `StartJobRun` 작업 제출자 포드에 대한 단일 AZ 노드 배치 및 Amazon EC2 인스턴스 유형 배치를 사용한 요청
<a name="emr-eks-job-submitter-ex-ec2"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.node.selector.topology.kubernetes.io/zone": "{{Availability Zone}}",
        "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"{{m5.4xlarge}}"
      }
    }
  ]
}
```

### `StartJobRun` 작업 제출자 포드에 대한 레이블, 주석 및 사용자 지정 스케줄러가 포함된 요청
<a name="emr-eks-job-submitter-label-annotation-scheduler"></a>

```
"configurationOverrides": { 
  "applicationConfiguration": [ 
    {
      "classification": "emr-job-submitter", 
      "properties": {
        "jobsubmitter.label.label1": "value1",
        "jobsubmitter.label.label2": "value2",
        "jobsubmitter.annotation.ann1": "value1",
        "jobsubmitter.annotation.ann2": "value2",
        "jobsubmitter.scheduler.name": "custom-scheduler"
      }
    }
  ]
}
```

### `StartJobRun` 키 , 값 `dedicated`, 효과 `graviton_machines`, 60초`tolerationSeconds`의 `NoExecute`가 있는 작업 제출자 포드에 허용 오차가 적용된 요청
<a name="emr-eks-job-submitter-tolerations"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.node.toleration.dedicated":"graviton_machines",
        "jobsubmitter.node.toleration.dedicated.effect":"NoExecute",
        "jobsubmitter.node.toleration.dedicated.tolerationSeconds":"60"
      }
    }
  ]
}
```

### `StartJobRun` 작업 제출자 포드에 대해 로깅이 비활성화된 요청
<a name="emr-eks-job-submitter-logging-disabled"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.logging": "DISABLED"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

### `StartJobRun` 작업 제출자 포드에 대한 사용자 지정 로깅 컨테이너 이미지, CPU 및 메모리를 사용한 요청
<a name="emr-eks-job-submitter-custom"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.logging.image": "{{YOUR_ECR_IMAGE_URL}}",
        "jobsubmitter.logging.request.memory": "200Mi",
        "jobsubmitter.logging.request.cores": "0.5"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

### `StartJobRun` 사용자 지정 작업 제출자 컨테이너 이미지 및 풀 정책을 사용한 요청
<a name="emr-eks-job-submitter-custom-container"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.container.image": "{{123456789012.dkr.ecr.us-west-2.amazonaws.com/emr6.11_custom_repo}}",
        "jobsubmitter.container.image.pullPolicy": "{{kubernetes pull policy}}"
      }
    }
  ]
}
```