AWS Glue 작업이 "Exit status: -100. Diagnostics: Container released on a *lost* node" 오류로 인해 실패하는 이유는 무엇입니까?

최종 업데이트 날짜: 2019년 11월 21일

My AWS Glue 작업이 "Exit status: -100. Diagnostics: Container released on a *lost* node" 오류로 인해 실패했습니다.

해결 방법

데이터 원본이 JDBC인 경우 Amazon RDS에서 Amazon S3로 대규모 데이터 세트를 마이그레이션하는 중 손실된 노드로 AWS Glue 작업 실패를 참조하십시오. 데이터 원본이 Amazon Simple Storage Service(Amazon S3)인 경우 다음 방법 중 하나 이상을 사용하여 손실된 노드 오류를 해결하십시오.

데이터 처리 단위(DPU) 추가

기본적으로 AWS Glue 작업에는 10개의 DPU가 있으며 표준 작업자 유형을 사용합니다. DPU 하나는 애플리케이션 마스터용으로 예약되어 있습니다. DPU를 추가하기 전에 다음을 고려하십시오.

  • 작업 워크로드가 병렬화된 경우에만 DPU 추가가 도움이 됩니다. 데이터를 적절하게 파티셔닝하지 않으면 데이터가 새 노드에 배포되지 않아 노드 손실 오류가 발생합니다. 자세한 내용은 최적의 DPU 용량 결정을 참조하십시오.
  • 경우에 따라 큰 파일이 노드에서 너무 많은 리소스를 소비할 수 있으므로 작업 워크로드 병렬화의 효율성이 떨어집니다. 이 문제를 완화하기 위해 큰 파일이 분할 가능한 형식인지 확인합니다. 자세한 내용은 Apache Spark 작업을 확장하고 AWS Glue를 사용하여 데이터를 파티셔닝하는 모범 사례를 참조하십시오.
  • 작업을 오래 실행할수록 작업으로 인해 디스크에 기록하는 로그가 많아집니다. 로그로 인해 디스크 공간 문제가 발생하면 더 많은 DPU를 추가해도 도움이 되지 않습니다. 경우에 따라 과도한 로깅 및 디스크 유출로 인해 노드 손실 오류가 발생합니다.
  • 로그 및 glue.ALL.jvm.heap.usage Amazon CloudWatch 지표를 확인하여 메모리 소비 실행기를 식별합니다. 일부 실행기가 다른 실행기보다 많은 메모리를 사용하는 경우 데이터 왜곡으로 인해 오류가 발생할 수 있습니다.

작업 API, AWS 명령줄 인터페이스(AWS CLI), 또는 AWS Glue 콘솔을 사용하여 작업을 생성할 때 더 많은 DPU를 추가합니다.

  • 작업 API: CreateJob 작업을 실행할 때 NumberOfWorkers 속성을 설정합니다.
  • AWS CLI: create-job 명령을 실행할 때 number-of-workers 속성을 설정합니다.
  • AWS Glue 콘솔: [Configure the job properties] 페이지의 [Security configuration, script libraries, and job parameters (optional)]에서 [Maximum capacity] 값을 늘립니다. 이 값은 작업에 대한 DPU 수입니다.

작업에 대해 CloudWatch 지표가 활성화되어 있는지 확인합니다. 이러한 지표는 작업 성능을 모니터링하고 더 많은 DPU를 추가해야 하는지 결정하는 데 도움이 될 수 있습니다. 작업 API, AWS CLI 또는 AWS Glue 콘솔을 사용하여 신규 또는 기존 작업의 지표를 활성화합니다.

  • 작업 API: CreateJob 또는 UpdateJob 작업에서 DefaultArguments를 정의할 때 --enable-metrics 인수를 사용합니다.
  • AWS CLI: --enable-metrics 인수를 사용합니다.
  • AWS Glue 콘솔: [Monitoring options]에서 [Job metrics]를 [Enabled]로 설정합니다.

DPU 작업자 유형 변경

데이터 세트의 크기에 따라 표준 작업자 유형의 리소스가 충분하지 않아 Spark 애플리케이션의 메모리 부족 및 디스크 유출 문제가 발생할 수 있습니다. 이 문제를 해결하려면 사용 가능한 리소스가 더 많은 작업자 유형을 선택하십시오.

  • 표준(기본값): 각 작업자는 1개의 DPU(4개의 vCPU, 16GB 메모리)에 매핑되며 디스크 공간은 50GB입니다.
  • G.1X: 각 작업자는 1개의 DPU(4개의 vCPU, 16GB 메모리)에 매핑되고 디스크 공간은 64GB입니다.
  • G.2X: 각 작업자는 2개의 DPU(vCPU 8개, 메모리 32GB)에 매핑되고 디스크 공간은 128GB입니다.

작업 API, AWS CLI, 또는 AWS Glue 콘솔을 사용하여 작업을 생성할 때 작업자 유형을 변경합니다.

  • 작업 API: CreateJob 작업을 실행할 때 WorkerType 속성을 설정합니다.
  • AWS CLI: create-job 명령을 실행할 때 worker-type 속성을 설정합니다.
  • AWS Glue 콘솔: [Configure the job properties] 페이지의 [Security configuration, script libraries, and job parameters (optional)]에서 [Worker type]에 다른 옵션을 선택합니다.

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?