과거 사용량에 따른 관리형 Spark 프로필
관리형 프로필은 최근 실행의 자원 사용량을 이용하여 드라이버와 실행기의 할당량을 줄이는 권장 구성을 계산합니다. 원래 요청보다 크게 확장하는 자동 증설 기능과 구분합니다.
적용 자격
다음 조건을 모두 충족해야 권장 구성을 적용합니다.
| 조건 | 요구 사항 |
|---|---|
| 최근 실행 결과 | 마지막 5회가 모두 성공해야 합니다. |
| 지표 수집 | 그 5회 중 적어도 4회에 지표가 있어야 합니다. 지표가 없는 실행은 최대 1회입니다. |
| 구성 일치 | 현재 실행과 이전 5회의 Spark 프로필 및 구성이 같아야 합니다. |
| 활성화 방식 | 기본 프로필을 사용하거나 MANAGED_PROFILE을 적용해야 합니다. |
하나라도 충족하지 못하면 원래 요청한 프로필로 실행합니다. 새 설정을 적용하는 것과 필요한 동일 구성의 성공 이력이 이미 쌓여 있는 것은 별개의 조건입니다.
자원 권장값
실행기 메모리와 코어, 드라이버 메모리와 코어, 실행기 수 각각에 대해 최근 5회에서 관측한 최대 사용량을 기준으로 계산합니다. 각 값은 원래 요청한 값을 넘지 않도록 제한합니다.
평균값만 보고 자원을 줄이는 방식이 아니므로 최근 실행 중 가장 많이 사용한 경우를 반영합니다. 실제 입력과 로직이 달라지면 이후 사용량도 달라질 수 있으므로 실행 상태를 계속 확인합니다.
낮은 병렬성의 로컬 모드
검토하는 실행기 구성의 코어 합이 다음 조건을 만족하면 로컬 모드 실행을 권장할 수 있습니다.
numExecutors × executorCores <= 4
로컬 모드를 선택하면 실행기에 분산하던 작업을 드라이버에서 수용하도록 다음과 같이 조정합니다.
driverMemory = max(originalDriverMemory,
numExecutors × executorMemoryGb)
driverCores = max(originalDriverCores,
numExecutors × executorCores)
작은 작업의 분산 실행 부담을 줄이려는 재배치입니다. 실행기 자원을 드라이버로 모으는 이 단계와, 분산 권장값을 원래 요청량 이하로 제한하는 단계를 구분합니다.
사용 방법
기본 Spark 프로필을 사용하는 작업은 별도 설정 없이 자격 평가 대상이 됩니다. 사용자 지정 프로필이 있다면 기존 목록에 MANAGED_PROFILE을 추가하여 자동 최적화 평가를 허용합니다.
프로필 적용에 따라 프로젝트 참조와 코드 구성을 준비합니다. 적용 여부와 결과는 실행의 실제 자원 및 Spark 지표로 확인합니다.