10分钟快速上手GlutenARM平台上Spark SQL性能优化实战指南【免费下载链接】GlutenThis repository is a mirror repository for the integration between the OmniRuntime system and Gluten.项目地址: https://gitcode.com/openeuler/Gluten前往项目官网免费下载https://ar.openeuler.org/ar/Gluten是openEuler社区推出的Spark SQL性能加速引擎通过Columnar执行模式显著提升ARM平台上的数据分析效率。本指南将帮助你在10分钟内完成从环境配置到性能测试的全流程让你的Spark作业在ARM架构下焕发新生 环境准备ARM平台兼容性检查Gluten在ARM平台aarch64架构上已实现完整支持需确保系统满足以下要求操作系统Ubuntu 20.04/22.04 或 CentOS 7/8Java环境OpenJDK 8推荐或 JDK 17Spark版本3.2.2/3.3.1/3.4.3/3.5.2官方验证版本基础依赖Maven 3.6、Git、CMake 3.16Gluten Columnar执行流程示意图展示从Spark SQL到Native执行的加速路径⚙️ 一键部署ARM平台专属安装脚本1. 代码获取与环境变量配置# 克隆官方仓库 git clone https://gitcode.com/openeuler/Gluten cd Gluten # 配置ARM专用JDK环境 export JAVA_HOME/usr/lib/jvm/java-8-openjdk-arm64 export PATH$JAVA_HOME/bin:$PATH2. 编译优化针对ARM架构的构建命令Gluten提供专为ARM平台优化的编译脚本通过CPU_TARGET参数自动适配aarch64架构# 设置ARM架构编译目标 export CPU_TARGETaarch64 # 执行一键构建包含Velox后端 ./dev/buildbundle-veloxbe.sh⏱️编译提示首次构建会下载依赖建议配置Maven镜像加速。可通过export NUM_THREADS4限制并行编译线程数避免ARM平台内存溢出。编译产物位于package/target/目录生成如gluten-velox-bundle-spark3.3_2.12-1.0.0-SNAPSHOT.jar的完整包。 核心配置解锁ARM平台性能潜力Spark配置优化在spark-defaults.conf中添加以下配置启用Gluten加速并优化ARM资源利用# 启用Gluten插件 spark.pluginsorg.apache.gluten.GlutenPlugin # 使用Columnar Shuffle管理器 spark.shuffle.managerorg.apache.spark.shuffle.sort.ColumnarShuffleManager # 配置OffHeap内存建议为物理内存的50% spark.memory.offHeap.enabledtrue spark.memory.offHeap.size20g # ARM平台内存优化 spark.gluten.sql.columnar.backend.velox.spillStrategyauto spark.gluten.sql.columnar.forceShuffledHashJointrue验证安装通过spark-shell验证Gluten是否正确加载spark-shell --jars package/target/gluten-velox-bundle-spark3.3_2.12-1.0.0-SNAPSHOT.jar在Spark Shell中执行spark.sparkContext.getConf.get(spark.plugins)应返回org.apache.gluten.GlutenPlugin。 性能测试ARM平台TPC-H基准验证数据准备使用Gluten提供的TPC-H数据生成工具位于tools/workload/tpch/# 生成SF100规模的Parquet格式数据 ./tools/workload/tpch/gen_data/parquet_dataset/tpch_datagen_parquet.sh 100 /path/to/tpch-data执行查询提交TPC-H Q6查询测试性能spark-submit \ --class org.apache.spark.sql.GlutenTPC \ --master yarn \ --conf spark.driver.extraClassPathpackage/target/gluten-velox-bundle-spark3.3_2.12-1.0.0-SNAPSHOT.jar \ --conf spark.executor.extraClassPathpackage/target/gluten-velox-bundle-spark3.3_2.12-1.0.0-SNAPSHOT.jar \ package/target/gluten-velox-bundle-spark3.3_2.12-1.0.0-SNAPSHOT.jar \ --data-path /path/to/tpch-data \ --query 6Gluten与原生Spark在ARM平台上的TPC-H 10查询性能对比平均加速2.3倍 监控与调优Gluten UI与性能诊断Gluten提供专属监控界面可直观查看执行计划和性能指标# 启用Gluten UI spark.gluten.ui.enabledtrue访问Spark UI的Gluten SQL / DataFrame标签页可查看各算子的Native执行状态内存使用和溢出统计执行计划 fallback 详情Gluten UI展示的查询执行详情包含Native计划和性能指标 进阶技巧ARM平台深度优化1. 内存管理优化针对ARM平台内存带宽特性调整Velox内存分配策略# 启用HBM高带宽内存支持如硬件支持 spark.gluten.sql.columnar.backend.velox.hbmEnabledtrue # 设置内存溢出阈值 spark.gluten.sql.columnar.backend.velox.maxSpillLevel42. 并发控制调整根据ARM核心数优化并行度# 设置Executor核心数建议为ARM物理核心数的1-1.5倍 --executor-cores 8 # 调整Shuffle并行度 spark.sql.shuffle.partitions200❓ 常见问题解决Q编译时提示aarch64架构不支持A确保使用最新代码执行git pull同步主分支ARM支持已合并到主线。Q查询出现Fallback警告A检查spark.gluten.sql.columnar.fallback.allow配置通过Gluten UI查看具体不支持的算子参考支持状态文档。QARM平台内存占用过高A启用内存溢出功能spark.gluten.sql.columnar.backend.velox.spillStrategyauto并调整spark.memory.offHeap.size至物理内存的40%。 资源与文档官方文档docs/get-started/Velox.md性能调优指南docs/developers/ProfileMemoryOfGlutenWithVelox.md代码仓库通过git clone https://gitcode.com/openeuler/Gluten获取最新代码通过本指南你已掌握在ARM平台部署和优化Gluten的核心技能。立即体验Columnar执行带来的性能飞跃让Spark SQL在ARM架构下发挥最大潜力✨【免费下载链接】GlutenThis repository is a mirror repository for the integration between the OmniRuntime system and Gluten.项目地址: https://gitcode.com/openeuler/Gluten创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考