使用Project Aether在云端大规模迁移Apache Spark工作负载至GPU

📅 发布时间:2026/7/8 3:39:23 👁️ 浏览次数:
使用Project Aether在云端大规模迁移Apache Spark工作负载至GPU
使用Project Aether在云端大规模迁移Apache Spark工作负载至GPU数据是现代业务的燃料但依赖较老的、基于CPU的Apache Spark管道会带来沉重的代价。它们天生缓慢需要庞大的基础设施并导致巨额的云支出。因此GPU加速的Spark正成为一种领先的解决方案通过并行处理提供极快的性能。这种提升的效率降低了云账单并节省了宝贵的开发时间。在此基础之上引入了一种智能且高效的方式来迁移现有的、在Amazon Elastic MapReduce (EMR)上运行的基于CPU的Spark工作负载。Project Aether是某机构NVIDIA设计的一款工具旨在自动化这一转换过程。它通过获取现有的CPU作业并对其进行优化使其能够在使用RAPIDS Accelerator的GPU加速EMR上运行从而获得性能提升。什么是Project Aether图1. Project Aether概览展示了工作流阶段和服务Project Aether是一套微服务和流程旨在自动化RAPIDS Accelerator的迁移和优化有效消除人工操作的摩擦。其目标是通过以下方式缩短从CPU到GPU的Spark作业迁移时间一个预测模型使用推荐的引导配置来预估潜在的GPU加速效果。在沙盒环境中对GPU作业进行开箱即用的测试和调优。针对成本和运行时间的智能优化。与Amazon EMR支持的工作负载完全集成。Amazon EMR集成Project Aether现已支持Amazon EMR平台它自动化了GPU测试集群的管理以及Spark步骤的转换和优化。用户可以使用所提供的服务将现有的EMR CPU Spark工作负载迁移到GPU上。设置和配置要开始使用需要满足以下先决条件Amazon EMR on EC2拥有GPU实例配额的某中心AWS账户。AWS CLI使用aws configure进行配置。Aether NGC请求访问权限使用ngc config set配置凭证并遵循Aether安装说明。为EMR配置Aether安装Aether包后使用以下命令为EMR平台配置Aether客户端# 初始化并列出配置$ aether config init $ aether config list# 选择EMR平台和区域$ aether configsetcore.selected_platform emr $ aether configsetplatform.emr.regionregion# 设置必需的EMR S3路径$ aether configsetplatform.emr.spark_event_log_dirs3_path_for_event_logs$ aether configsetplatform.emr.cluster.artifacts_paths3_path_for_uploading_aether_artifacts$ aether configsetplatform.emr.cluster.log_paths3_path_for_cluster_log_uri示例Aether EMR迁移工作流Aether CLI工具提供了多个模块化命令来运行各项服务。每个命令都会显示一个汇总表并将每次运行记录在作业历史数据库中。在任何时候都可以参考“4. 迁移报告与建议”来查看被跟踪的作业。在每个aether命令后使用--help选项可以获取更多详细信息。该示例EMR工作流需要从一个现有的Spark步骤开始该步骤的ID为s-XXX它运行在一个ID为j-XXX的CPU EMR集群上。有关向EMR集群提交步骤的更多信息请参考某中心Amazon EMR文档。迁移过程分为四个核心阶段预测、优化、验证和迁移。1. 预测资格评估确定CPU Spark作业是否适合进行GPU加速并生成初步的优化建议。资格评估工具使用QualX机器学习系统的XGBoost模型根据从CPU事件日志中提取的工作负载特征来预测潜在的GPU加速效果和兼容性。输入从EMR步骤和集群API获取的CPU事件日志或直接提供。输出由AutoTuner生成的推荐Spark配置参数。推荐的GPU集群形态包括经过成本优化后的实例类型和数量。用于跟踪此作业及任何后续作业运行的Aether作业ID。命令# 选项1使用平台ID$ aether qualify --platform_job_idcpu_step_id--cluster_idcpu_cluster_id# 选项2直接提供事件日志路径$ aether qualify --event_logs3_or_local_event_log_path2. 优化自动测试与调优通过在GPU集群上测试作业并迭代调优Spark配置参数以实现最佳性能和成本节约。首先使用集群服务创建GPU测试集群然后使用调优服务优化GPU作业该服务会迭代运行提交和分析提交作业提交服务使用指定的配置将Spark作业提交到GPU集群。分析分析服务使用分析工具处理GPU事件日志以分析瓶颈并生成新的Spark配置参数从而提升性能或降低成本。输入从预测阶段输出中获得的、用于GPU作业的推荐Spark配置参数。从预测阶段输出中获得的、用于创建GPU集群的推荐GPU集群形态。输出在所有调优迭代中从运行时长最短的作业中选择最佳GPU配置。命令# A. 创建一个测试用的EMR GPU集群# 选项1使用推荐的集群形态ID和默认集群配置$ aether cluster create --cluster_shape_idrecommended_cluster_shape_id_from_qualify# 选项2提供自定义配置文件$ aether cluster create --cluster_shape_idrecommended_cluster_shape_id_from_qualify--config_filecustom_cluster_yaml_file# B. 向集群提交GPU步骤$ aether submit --config_idrecommended_spark_config_id_from_qualify--cluster_idgpu_cluster_id_from_create# C. 分析GPU运行结果以生成新的推荐Spark配置$ aether profile --platform_job_idgpu_step_id_from_submit--cluster_idgpu_cluster_id_from_create# D. 迭代调优作业提交 分析循环$ aether tune --aether_job_idaether_job_id--cluster_idgpu_cluster_id_from_create--min_tuning_iterations33. 验证数据完整性检查通过确保GPU作业的结果与原始CPU作业相同来确认GPU作业的输出的完整性。验证服务会比较从事件日志中获取的关键行级指标特别是读取的行数和写入的行数在最佳的GPU运行结果和原始的CPU运行结果之间进行对比。命令# 验证CPU和GPU作业指标$ aether validate --aether_job_idaether_job_id4. 迁移报告与建议查看作业历史数据库中已跟踪作业的详细报告并查看每个作业的迁移建议包括最佳的Spark配置参数和GPU集群配置。报告服务提供了CLI和UI选项来展示关键绩效指标 (KPI)所有作业的总加速比和总成本节约。作业列表每个作业的加速比、成本节约和迁移建议。作业详情单个作业的所有运行记录包括原始CPU运行和GPU调优运行的指标和详细信息。命令# 列出所有作业报告$ aether report list# 查看特定作业的所有运行记录$ aether report job --aether_job_idaether_job_id# 启动Aether UI以在浏览器中查看报告$ aether report ui图2. Aether报告UI作业详情示例截图图3. Aether报告UI GPU配置详情示例截图5. 自动化运行将上述所有独立服务合并到一个自动化的Aether运行命令中# 在CPU事件日志上运行完整的Aether工作流$ aether run --event_logs3_or_local_event_log_path结论Project Aether是一个强大的工具用于加速大数据处理减少在GPU上迁移和运行大规模Apache Spark工作负载所需的时间和成本。要尝试将其用于Apache Spark工作负载的大规模迁移可以申请Project Aether的访问权限。要了解有关RAPIDS插件的更多信息请参阅RAPIDS Accelerator for Apache Spark的文档。FINISHED更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享