Spark アップグレードエージェントのワークフローの詳細 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Spark アップグレードエージェントのワークフローの詳細

アップグレードプロセスを開始するには、Spark アプリケーションコードを開発者環境 (ローカルまたは EC2 または Amazon SageMaker Unified Studio IDE スペース) にクローンする必要があります。できれば Git バージョン管理を初期化します。さらに、ターゲット 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. Run unit and Integration Tests: プロジェクトにテストがある場合、エージェントはビルドが成功した後にテストを実行します。テストが失敗した場合、エージェントはテストが合格するまでソースコードを繰り返し変更してから EMR 検証に進みます。

  6. ランタイムの修正と検証: エージェントはターゲット EMR クラスター上のアプリケーションを検証し、検証が成功するまでランタイムエラーを繰り返し修正します。完了すると、互換性のために行われたすべての変更の概要が表示されます。

  7. アップグレードの概要: アップグレードが完了すると、エージェントはすべてのコードと設定の変更、依存関係バージョンの更新、検出されたデータ品質の不一致の概要を確認して提供します。