詳細資訊中的 Spark 升級代理程式工作流程 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

詳細資訊中的 Spark 升級代理程式工作流程

若要啟動升級程序,您需要將 Spark 應用程式程式碼複製到開發人員環境 (本機或 EC2 或 Amazon SageMaker Unified Studio IDE Spaces),最好初始化 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. 執行單位和整合測試:如果專案有測試,代理程式會在成功建置後執行測試。如果任何測試失敗,代理程式會反覆修改原始程式碼,直到測試通過,再繼續進行 EMR 驗證。

  6. 執行時間修正和驗證:代理程式將驗證目標 EMR 叢集上的應用程式,並反覆修正任何執行時間錯誤,直到驗證成功為止。完成後,您會看到針對相容性所做的所有變更摘要。

  7. 升級摘要:升級完成後,代理程式將提供所有程式碼和組態變更的摘要、相依版本更新,以及任何偵測到的資料品質不相符,供您檢閱。