클러스터 용량을 확장하세요. -

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

클러스터 용량을 확장하세요.

작업에 너무 많은 시간이 걸리지만 실행기가 충분한 리소스를 소비하고 있고 Spark가 사용 가능한 코어에 비해 대량의 작업을 생성하고 있다면 클러스터 용량을 확장하는 것을 고려해 보세요. 이것이 적절한지 평가하려면 다음 측정치를 사용하세요.

CloudWatch 지표

  • CPU로드메모리 사용률을 확인하여 실행기가 충분한 리소스를 소비하고 있는지 확인하세요.

  • 처리 시간이 성능 목표를 달성하기에 너무 길지 않은지 확인하려면 작업이 얼마나 오래 실행되었는지 확인하세요.

다음 예제에서는 실행기 4개가 97% 이상의 CPU 부하로 실행되고 있지만 약 3시간이 지나도 처리가 완료되지 않았습니다.

""
참고

CPU부하가 낮으면 클러스터 용량을 확장해도 효과가 없을 수 있습니다.

Spark UI

Job 탭 또는 Stage 탭에서 각 작업 또는 단계의 작업 수를 확인할 수 있습니다. 다음 예제에서 Spark는 58100 작업을 생성했습니다.

모든 작업의 스테이지에는 한 단계와 58,100개의 작업이 표시됩니다.

실행자 탭에서는 총 실행자 및 작업 수를 확인할 수 있습니다. 다음 스크린샷에서 각 Spark 실행기는 4개의 코어를 가지고 있으며 4개의 작업을 동시에 수행할 수 있습니다.

코어 열을 보여 주는 실행자 테이블.

이 예제에서 Spark 작업 () 의 수는 58100) 실행기가 동시에 처리할 수 있는 16개 작업 (실행기 4개 × 코어 4개) 보다 훨씬 많습니다.

이러한 증상이 나타나면 클러스터를 확장해 보세요. 다음 옵션을 사용하여 클러스터 용량을 확장할 수 있습니다.

  • AWS Glue Auto Scaling 활성화 - AWS Glue 버전 3.0 이상에서 AWS Glue 추출, 변환, 로드 (ETL) 및 스트리밍 작업에 Auto Scaling을 사용할 수 있습니다. AWS Glue 각 단계의 파티션 수 또는 작업 실행 시 마이크로배치가 생성되는 속도에 따라 클러스터에서 작업자를 자동으로 추가하고 제거합니다.

    Auto Scaling을 활성화했는데도 작업자 수가 증가하지 않는 상황이 발생하면 작업자를 수동으로 추가하는 것을 고려해 보십시오. 하지만 한 스테이지를 수동으로 스케일링하면 이후 단계에서 많은 작업자가 유휴 상태가 되어 성능은 전혀 향상되지 않으면 비용이 더 많이 들 수 있다는 점에 유의하십시오.

    Auto Scaling을 활성화하면 실행자 지표에서 실행자 수를 확인할 수 있습니다. CloudWatch 다음 지표를 사용하여 Spark 애플리케이션의 실행기에 대한 수요를 모니터링하십시오.

    • glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

    • glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

    지표에 대한 자세한 내용은 Amazon CloudWatch 지표를 AWS Glue 사용한 모니터링을 참조하십시오.

  • 스케일 아웃: 작업자 수 늘리기 — AWS Glue 작업자 수를 AWS Glue 수동으로 늘릴 수 있습니다. 유휴 근로자가 관찰될 때까지만 작업자를 추가하십시오. 이때 근로자를 더 추가하면 결과가 개선되지 않고 비용이 증가하게 됩니다. 자세한 내용은 작업 병렬화를 참조하십시오.

  • 확장: 더 큰 작업자 유형 사용 — 더 많은 코어, 메모리 및 스토리지를 갖춘 AWS Glue 작업자를 사용하도록 작업자의 인스턴스 유형을 수동으로 변경할 수 있습니다. 작업자 유형이 크면 메모리를 많이 사용하는 데이터 변환, 치우친 집계, 페타바이트 규모의 데이터를 포함하는 개체 감지 검사 등 집약적인 데이터 통합 작업을 수직으로 확장하고 실행할 수 있습니다.

    확장은 작업 쿼리 계획이 상당히 크기 때문에 Spark 드라이버에 더 큰 용량이 필요한 경우에도 도움이 됩니다. 작업자 유형 및 성능에 대한 자세한 내용은 AWS 빅 데이터 블로그 게시물 더 큰 새 작업자 유형 G.4X 및 AWS Glue G.8X를 사용하여 Apache Spark 작업을 확장하기를 참조하십시오.

    또한 대규모 작업자를 사용하면 필요한 총 작업자 수를 줄일 수 있으며, 조인과 같이 집중적인 작업에서 셔플을 줄여 성능을 높일 수 있습니다.