Amazon EMR에 작업을 제출할 때 여러 단계를 병렬로 실행하기 위한 고려 사항
Amazon EMR에 작업을 제출하는 경우 여러 단계를 병렬로 실행하려면 리소스 계획 및 클러스터 동작과 관련된 기대치에 대한 사전 결정이 필요합니다. 여기에서 자세히 설명합니다.
-
병렬로 실행 중인 단계는 어떤 순서로든 완료될 수 있지만 대기열에 있는 보류 중인 단계는 제출된 순서대로 실행 중 상태로 전환됩니다.
-
클러스터의 단계 동시성 레벨을 선택할 때는 프라이머리 노드 인스턴스 유형이 사용자 워크로드의 메모리 요구 사항을 충족하는지 여부를 고려해야 합니다. 기본 단계 실행기 프로세스는 각 단계의 프라이머리 노드에서 실행됩니다. 여러 단계를 병렬로 실행하려면 한 번에 한 단계씩 실행할 때보다 프라이머리 노드에서 더 많은 메모리와 CPU 사용률이 필요합니다.
-
동시 단계의 복잡한 일정 예약 및 리소스 관리를 달성하기 위해
FairScheduler
또는CapacityScheduler
와 같은 YARN의 일정 예약 기능을 사용할 수 있습니다. 예를 들어queueMaxAppsDefault
가 설정된FairScheduler
를 사용하여 특정 수의 작업이 한 번에 실행되지 않도록 할 수 있습니다. -
단계 동시성 레벨은 리소스 관리자가 구성합니다. 예를 들어 YARN이
5
의 병렬 처리만으로 구성된 경우StepConcurrencyLevel
을10
으로 설정하더라도 5개의 YARN 응용 프로그램만 병렬로 실행할 수 있습니다. 리소스 관리자 구성에 대한 자세한 내용은 Amazon EMR 릴리스 안내서에서 애플리케이션 구성을 참조하세요. -
클러스터의 단계 동시성 수준이 1보다 큰 경우 계속 이외의
ActionOnFailure
상태인 단계를 추가할 수 없습니다. -
클러스터의 단계 동시성 수준이 1보다 큰 경우 단계
ActionOnFailure
기능이 활성화되지 않습니다. -
클러스터의 단계 동시성 수준이
1
이지만 실행 중인 단계가 여러 개 있는 경우TERMINATE_CLUSTER ActionOnFailure
는 활성화될 수 있지만CANCEL_AND_WAIT ActionOnFailure
는 활성화되지 않습니다. 이 엣지 사례는 클러스터 단계 동시성 수준이 1보다 크지만 여러 단계가 실행 중일 때 해당 수준이 낮아지는 경우에 나타납니다. -
YARN 리소스를 기반으로 확장하거나 축소하는 EMR 자동 조정을 사용하여 리소스 경합을 방지할 수 있습니다. 자세한 내용은 Amazon EMR 관리 안내서에서 인스턴스 그룹에 대한 사용자 지정 정책을 통해 자동 조정 사용을 참조하세요.
-
단계 동시 작업 레벨을 낮추면 EMR에서 단계 수를 줄이기 전에 실행 중인 모든 단계를 완료할 수 있습니다. 클러스터가 너무 많은 동시 단계를 실행하고 있기 떄문에 리소스가 소진되는 경우, 실행 중인 단계를 수동으로 취소하여 리소스를 확보하는 것이 좋습니다.