View a markdown version of this page

Amazon EMR 컨테이너 기본 분류 사용 - Amazon EMR

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

Amazon EMR 컨테이너 기본 분류 사용

개요

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

job-start-timeout

기본적으로, 작업을 시작할 수 없고 SUBMITTED 상태로 15분 동안 대기하면 작업이 시간 초과됩니다. 이 구성은 작업 시간이 초과되기 전에 대기할 초 수를 변경합니다.

executor.logging

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

logging.image

드라이버 및 실행기 포드의 로깅 컨테이너에 사용할 사용자 지정 이미지를 설정합니다.

logging.request.cores

드라이버 및 실행기 포드의 CPU 수의 사용자 지정 값을 CPU 단위로 설정합니다. 기본적으로 이 값은 설정되어 있지 않습니다.

logging.request.memory

드라이버 및 실행기 포드에서 로깅 컨테이너에 할당할 메모리 양(바이트 단위)에 대한 사용자 지정 값을 설정합니다. 기본적으로 이 값은 512Mi로 설정되어 있습니다. 메비바이트는 메가바이트와 유사한 측정 단위입니다.

logging.eventLog.dir

이 구성을 사용하여 영구 앱 UI를 활성화하고 Spark 이벤트 로그를 자체 S3 위치에 저장합니다. 이벤트 로그의 S3 경로logging.eventLog.dir로 설정합니다. monitoringConfiguration에서 persistentAppUIENABLED로 설정합니다. 를 사용할 spark.eventLog.dir 때는 설정하지 마십시오. logging.eventLog.dir이 두 구성은 호환되지 않습니다. spark.eventLog.dir이 설정된 경우 해당 구성이 우선하며 로깅 컨테이너가 Spark 이벤트 로그를 복제할 수 없습니다. 즉,에서 지정한 S3 위치logging.eventLog.dir는 이벤트 로그를 수신하지 않으며 영구 앱 UI도 작동하지 않습니다.

logging.nativeSidecar

Amazon EMR 릴리스 6.8.0 이상에 ENABLED 대해이 속성을 로 설정하면 Amazon EMR은 Spark 드라이버 및 실행기 포드의 로깅 컨테이너를 일반 컨테이너 대신 Kubernetes네이티브 사이드카 컨테이너(Kubernetes웹사이트의 세부 정보 참조)로 구성합니다. 즉, 실패 시 로깅 컨테이너가 자동으로 다시 시작되고 로깅 컨테이너 실패로 인해 포드가 실패하지 않습니다.

노드 버전 요구 사항

Amazon EKS 노드는 Kubernetes 버전 1.29 이상을 실행해야 합니다. EKS 클러스터 버전은 노드 버전과 다를 수 있습니다. 노드가 1.29 미만의 버전을 실행하는 경우 Kubernetes는 네이티브 사이드카 기능을 활성화하지 않으며 로깅 컨테이너는 드라이버 시작을 방지하여 작업 시간 초과로 이어집니다.

작업 제출자 분류 예제

사용자 지정 작업 제한 시간이 있는 StartJobRun 요청

{ "name": "spark-python", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "job-start-timeout": "1800" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } }

StartJobRun 실행기 포드에 대해 로깅이 비활성화된 요청

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

StartJobRun 드라이버 및 실행기 포드에 대한 사용자 지정 로깅 컨테이너 이미지, CPU 및 메모리를 사용한 요청

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

Fluentd 로깅 컨테이너에 out-of-memory(OOM) 오류가 발생하면 logging.request.memory 값을 늘립니다. 예를 들어 로깅 컨테이너1Gi에 더 많은 메모리를 할당하고 OOM 문제를 방지하려면 로 설정합니다.

StartJobRun Spark 이벤트 로그 Amazon S3 대상을 사용한 요청

다음 예시에서는 영구 앱 UI도 활성화하면서 Spark 이벤트 로그를 자체 Amazon S3 버킷에 저장합니다. persistentAppUI 설정은 ENABLED 기본적으로 입니다.

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.eventLog.dir": "s3://my-bucket/event-logs/" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED" } }
참고

를 사용할 때는 spark-defaults 분류spark.eventLog.dir에를 설정하지 마십시오logging.eventLog.dir. 이 두 구성은 호환되지 않습니다. spark.eventLog.dir이 설정된 경우 해당 구성이 우선하며 로깅 컨테이너가 Spark 이벤트 로그를 복제할 수 없습니다. 즉,에 지정된 S3 위치logging.eventLog.dir는 이벤트 로그를 수신하지 않으며 영구 앱 UI도 작동하지 않습니다.

StartJobRun 네이티브 사이드카 로깅을 사용한 요청

다음 예시에서는 Spark 드라이버 및 실행기 포드의 로깅 컨테이너에 대해 네이티브 사이드카 모드를 활성화합니다. 활성화하면 로깅 컨테이너가 장애 시 자동으로 다시 시작되고 Spark 포드의 상태에 영향을 주지 않는 Kubernetes 기본 사이드카로 실행됩니다.

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.nativeSidecar": "ENABLED" } } ], "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://my-bucket/logs/" } } }
노드 버전 요구 사항

Amazon EKS 노드는 Kubernetes 버전 1.29 이상을 실행해야 합니다. EKS 클러스터 버전은 노드 버전과 다를 수 있습니다. 노드가 1.29 미만의 버전을 실행하는 경우 Kubernetes는 네이티브 사이드카 기능을 활성화하지 않으며 로깅 컨테이너는 드라이버 시작을 방지하여 작업 시간 초과로 이어집니다.