

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

# Spark 업그레이드 에이전트 워크플로 세부 정보
<a name="emr-spark-upgrade-agent-workflow-details"></a>

업그레이드 프로세스를 시작하려면 가급적 Git 버전 제어가 초기화된 상태로 Spark 애플리케이션 코드를 개발자 환경(로컬 또는 EC2 또는 [ Amazon SageMaker Unified Studio IDE 스페이스](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/create-space.html))에 복제해야 합니다. 또한 대상 Spark 버전을 실행하는 EMR 클러스터를 프로비저닝하고 액세스할 수 있어야 합니다. 마지막으로, 지정된 Amazon S3 버킷 경로를 구성하여 업그레이드 프로세스 전반에 걸쳐 배포 아티팩트와 업그레이드 요약을 저장해야 합니다.

이러한 요구 사항이 설정되면 다음과 같은 프롬프트를 제출하여 업그레이드 워크플로를 시작할 수 있습니다.

```
Upgrade my Spark application <local-project-path> from EMR version 6.0.0 to 7.12.0.   
Use EMR-EC2 Cluster <cluster-id> to run the validation and s3 paths   
s3://<please fill in your staging bucket path> to store updated application artifacts.
```

이 시점에서 에이전트는 특수 도구를 사용하여 업그레이드를 오케스트레이션합니다(자세한 [내용은](emr-spark-upgrade-agent-tools.md) 참조). 워크플로는 다음 단계를 따릅니다.

1. **계획 생성**: 에이전트가 프로젝트 구조를 분석하고 업그레이드 계획을 생성합니다. 계획을 검토하고 진행에 동의하세요.

1. **계획 검토 및 사용자 지정**: 계획을 검토하라는 메시지가 표시되면 몇 가지 옵션이 있습니다.

   1. **그대로 진행**: 계획을 수락하고 실행을 계속합니다.

   1. **피드백 제공**: 다음을 기준으로 계획을 사용자 지정합니다.

      1. 불필요한 단계 제거 - 예: 통합 테스트 실행을 제거합니다. 로컬에서만 컴파일/빌드한 다음 EMR 검증으로 진행합니다.

      1. 추가 단계 추가 - 예: EMR 검증 `tests/test_jobs/test_etl_job_x.py` 전에 테스트 파일을 실행하는 단계를 추가합니다.

      1. 업그레이드 접근 방식 수정 - 예: 빌드 및 검증 단계에서 Python 3.10 및 Java 17을 적용합니다.

1. 에이전트는 피드백을 기반으로 계획을 다시 생성하고 동의를 다시 요청합니다. 이 프로세스는 최종 계획을 승인할 때까지 계속됩니다.

1. **컴파일 및 빌드**: 에이전트는 애플리케이션이 성공적으로 컴파일되고 빌드될 때까지 빌드 오류를 수정하기 위해 반복적으로 변경합니다.

1. **유닛 및 통합 테스트 실행**: 프로젝트에 테스트가 있는 경우 성공적인 빌드 후 에이전트가 테스트를 실행합니다. 테스트가 실패하면 에이전트는 EMR 검증으로 진행하기 전에 테스트가 통과할 때까지 소스 코드를 반복적으로 수정합니다.

1. **런타임 수정 및 검증**: 에이전트는 대상 EMR 클러스터에서 애플리케이션을 검증하고 검증이 성공할 때까지 런타임 오류를 반복적으로 수정합니다. 완료되면 호환성을 위해 수행된 모든 변경 사항의 요약이 표시됩니다.

1. **업그레이드 요약**: 업그레이드가 완료되면 에이전트는 검토를 위해 모든 코드 및 구성 변경 사항, 종속성 버전 업데이트 및 감지된 데이터 품질 불일치에 대한 요약을 제공합니다.