Spark 업그레이드 에이전트 워크플로 세부 정보 - Amazon EMR

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

Spark 업그레이드 에이전트 워크플로 세부 정보

업그레이드 프로세스를 시작하려면 가급적 Git 버전 제어가 초기화된 상태로 Spark 애플리케이션 코드를 개발자 환경(로컬 또는 EC2 또는 Amazon SageMaker Unified Studio IDE 스페이스)에 복제해야 합니다. 또한 대상 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.

이때 에이전트는 특수 도구를 사용하여 업그레이드를 오케스트레이션합니다(자세한 내용은 참조). 워크플로는 다음 단계를 따릅니다.

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

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

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

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

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

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

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

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

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

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

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

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