本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
特征和功能
支持的技术
-
语言:Python 和 Scala 应用程序
-
构建系统:适用于 Scala 项目的 Maven 和 SBT;适用于 Python 项目的 requirements.txt、Pipfile 和 Setuptools
-
目标平台:亚马逊 EMR 和 EMR 无服务器
-
支持的版本:我们支持 Apache Spark 从 2.4 版升级到 3.5 版。对应的部署模式映射如下
-
对于 EMR-EC2
-
源版本:EMR 5.20.0 及更高版本
-
目标版本:EMR 7.12.0 及更早版本,应比 EMR 5.20.0 更新
-
-
适用于 EMR 无服务器
-
源版本:EMR Serverless 6.0 及更高版本
-
目标版本:EMR Serverless 7.12.0 及更早版本
-
-
我们升级的内容
升级代理提供全面的 Spark 应用程序升级:
-
生成配置:自动更新依赖项管理文件(pom.xml、requirements.txt 等)
-
源代码:修复了 API 兼容性问题和过时的方法用法
-
测试代码:确保单元和集成测试适用于目标 Spark 版本
-
依赖关系:将打包的依赖项升级到与目标 EMR 版本兼容的版本
-
验证:编译和验证目标 EMR 集群上的应用程序
-
数据质量分析:通过详细的影响报告检测架构差异、值级别的统计数据偏差 (min/max/mean) 和汇总行数不匹配情况。
可用区
Spark 升级代理可在以下区域使用:
-
亚太地区:东京(ap-northeast-1)、首尔(ap-northeast-2)、新加坡(ap-southeast-1)、悉尼(ap-southeast-2)和孟买(ap-southeast-1)和孟买(ap-southeast-1)
-
北美洲:加拿大(ca-central-1)
-
欧洲:斯德哥尔摩(eu-north-1)、爱尔兰(eu-west-1)、伦敦(eu-west-2)、巴黎(eu-west-3)和法兰克福(eu-central-1)
-
南美洲:圣保罗(sa-east-1)
-
美国:弗吉尼亚州北部(us-east-1)、俄亥俄州(us-east-2)和俄勒冈州(us-west-2)
升级范围和用户要求
-
集群管理:Spark 升级代理侧重于应用程序代码升级。新版本的目标 EMR 集群必须由用户创建和管理。
-
引导操作:Spark 升级代理不会升级 Spark 应用程序代码之外的自定义引导脚本。它们需要由用户升级。
-
升级生成和测试:升级代理将在本地开发环境中执行构建和运行单元和集成测试,以验证应用程序是否使用目标 Spark 版本成功编译。如果您对本地执行的 Spark 应用程序代码有限制(安全政策、资源限制、网络限制或公司指南),请考虑使用 Amazon SageMaker Unified Studio VSCode IDE 空间或 EC2 运行升级代理。升级代理使用您的目标 EMR EC2 群集或 EMR-S 应用程序来验证和升级。 end-to-end
-
错误驱动的方法:升级代理使用错误驱动的方法,根据编译或运行时错误一次进行一次修复,而不是一次进行多个修复。这种迭代方法可确保在继续处理下一个问题之前,每个问题都得到妥善解决。
-
私有依赖关系:从私有构件存储库安装的依赖项无法作为此过程的一部分自动升级。它们必须由用户升级。
-
区域资源:Spark 升级代理是区域性的,使用该区域的底层 EMR 资源进行升级过程。不支持跨区域升级。