작업 제출자 분류 사용 - Amazon EMR

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

작업 제출자 분류 사용

개요

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]

작업 제출자 포드에 허용치를 추가합니다. 기본적으로 포드에 추가된 허용 오차는 없습니다. 톨러레이션의 키는 tolerationKey이고 톨러레이션의 값은 구성 값입니다. 구성 값이 비어 있지 않은 문자열로 설정된 경우 연산자는가 됩니다Equals. 구성 값이 로 설정된 경우 연산""자는가 됩니다Exists.

jobsubmitter.node.toleration.[tolerationKey].[effect]

tolerationKey 접두사에 tolerationKey 효과를 추가합니다. 이 필드는 허용치를 추가할 때 필요합니다. 효과 필드에 허용되는 값은 NoExecute, NoSchedule및 입니다PreferNoSchedule.

jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds]

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를 설정합니다.

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

작업 제출자 분류 예제

작업 제출자 포드의 온디맨드 노드 배치를 포함한 StartJobRun 요청

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 인스턴스 유형 배치를 사용한 요청

"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 작업 제출자 포드에 대한 레이블, 주석 및 사용자 지정 스케줄러가 포함된 요청

"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초tolerationSecondsNoExecute가 있는 작업 제출자 포드에 허용 오차가 적용된 요청

"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 작업 제출자 포드에 대해 로깅이 비활성화된 요청

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

StartJobRun 작업 제출자 포드에 대한 사용자 지정 로깅 컨테이너 이미지, CPU 및 메모리를 사용한 요청

"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 사용자 지정 작업 제출자 컨테이너 이미지 및 풀 정책을 사용한 요청

"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" } } ] }