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. 移除不必要的步骤-示例:移除所有集成测试执行。仅 compile/build 在本地,然后继续进行 EMR 验证。

      2. 添加其他步骤-示例:在 EMR 验证tests/test_jobs/test_etl_job_x.py之前添加运行测试文件的步骤。

      3. 修改升级方法-示例:在构建和验证步骤中强制执行 Python 3.10 和 Java 17。

  3. 代理将根据您的反馈重新生成计划,并再次征得您的同意。此过程一直持续到您批准最终计划为止

  4. 编译和构建:代理将进行迭代更改以修复生成错误,直到应用程序成功编译和构建。

  5. 运行单元测试和集成测试:如果项目有测试,代理将在成功构建后运行测试。如果有任何测试失败,代理将迭代修改源代码,直到测试通过,然后再继续进行 EMR 验证。

  6. 运行时修复和验证:代理将在目标 EMR 集群上验证应用程序,并迭代修复所有运行时错误,直到验证成功。完成后,您将看到为兼容性而做的所有更改的摘要。

  7. 升级@@ 摘要:升级完成后,代理将提供所有代码和配置更改、依赖项版本更新以及任何检测到的数据质量不匹配的摘要,供您查看。