当前位置: 首页 > news >正文

从零开始:在openEuler上部署Spark 3.2.2的完整指南

从零开始:在openEuler上部署Spark 3.2.2的完整指南

【免费下载链接】bigdataThis repository contains common information and common tools of bigdata.项目地址: https://gitcode.com/openeuler/bigdata

前往项目官网免费下载:https://ar.openeuler.org/ar/

Spark作为一款强大的分布式计算框架,在大数据处理领域扮演着至关重要的角色。本指南将带你快速掌握在openEuler操作系统上部署Spark 3.2.2的核心步骤,从环境准备到集群配置,让你轻松开启大数据处理之旅。

1. 环境要求与准备

1.1 软件版本建议

部署Spark 3.2.2前,请确保系统中已安装以下软件:

软件版本要求获取方法
OpenJDK1.8.0_342通过yum安装或从官网获取
Hadoop3.3.4官网下载,aarch64架构需参考hadoop移植指南
Spark3.2.2官网下载,aarch64架构需参考spark移植指南

1.2 硬件与操作系统要求

  • 硬件配置:最低要求为任意CPU、1GB内存、10GB硬盘,实际生产环境需根据数据量调整
  • 操作系统:支持openEuler-20.03、openEuler-22.03及CentOS 7.4~7.6版本

1.3 集群环境规划(以4节点为例)

节点名称IP地址硬件配置部署服务
server1IPaddress1系统盘4TB + 数据盘12×4TB HDDNamenode、ResourceManager
agent1IPaddress2系统盘4TB + 数据盘12×4TB HDDDataNode、NodeManager、JournalNode
agent2IPaddress3系统盘4TB + 数据盘12×4TB HDDDataNode、NodeManager、JournalNode
agent3IPaddress4系统盘4TB + 数据盘12×4TB HDDDataNode、NodeManager、JournalNode

2. 基础环境配置

2.1 配置主机名与网络

# 修改主机名(分别在各节点执行) hostnamectl set-hostname server1 --static # server1节点 hostnamectl set-hostname agent1 --static # agent1节点 # ...以此类推设置其他节点 # 配置hosts文件(所有节点) cat >> /etc/hosts << EOF IPaddress1 server1 IPaddress2 agent1 IPaddress3 agent2 IPaddress4 agent3 EOF

2.2 关闭防火墙与SELinux

# 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service # 关闭SELinux(临时生效) setenforce 0 # 永久关闭(需重启) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.3 配置SSH免密登录

# 生成密钥(所有节点) ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa # 配置免密登录(在server1执行) for node in server1 agent1 agent2 agent3; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$node done

2.4 安装Java环境

# 安装OpenJDK yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 验证安装 java -version # 应显示1.8.0_342版本信息

3. 部署Hadoop(前置依赖)

在部署Spark前需先完成Hadoop集群搭建,具体步骤参考Hadoop部署指南。主要验证项:

  • HDFS文件系统可正常读写
  • YARN资源管理器状态正常
  • 所有节点进程正常启动

4. Spark 3.2.2部署步骤

4.1 下载与解压Spark安装包

# 下载Spark 3.2.2(若官网下载慢可使用国内镜像) wget https://archive.apache.org/dist/spark/spark-3.2.2/spark-3.2.2-bin-hadoop3.2.tgz # 解压至安装目录 tar zxf spark-3.2.2-bin-hadoop3.2.tgz -C /usr/local/ ln -s /usr/local/spark-3.2.2-bin-hadoop3.2 /usr/local/spark

4.2 配置环境变量

cat >> /etc/profile << EOF # Spark环境变量 export SPARK_HOME=/usr/local/spark export PATH=\$PATH:\$SPARK_HOME/bin:\$SPARK_HOME/sbin EOF # 使配置生效 source /etc/profile

4.3 配置Spark核心文件

4.3.1 配置spark-env.sh
cd $SPARK_HOME/conf cp spark-env.sh.template spark-env.sh cat >> spark-env.sh << EOF export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=\$HADOOP_HOME/etc/hadoop export SPARK_MASTER_HOST=server1 export SPARK_WORKER_MEMORY=8g # 根据实际内存调整 export SPARK_EXECUTOR_MEMORY=4g export SPARK_DRIVER_MEMORY=2g EOF
4.3.2 配置workers文件
cp workers.template workers cat > workers << EOF server1 agent1 agent2 agent3 EOF
4.3.3 配置spark-defaults.conf
cp spark-defaults.conf.template spark-defaults.conf cat >> spark-defaults.conf << EOF spark.eventLog.enabled true spark.eventLog.dir hdfs://server1:9000/spark-history spark.history.fs.logDirectory hdfs://server1:9000/spark-history spark.yarn.historyServer.address server1:18080 spark.serializer org.apache.spark.serializer.KryoSerializer EOF # 创建历史日志目录 hdfs dfs -mkdir -p /spark-history hdfs dfs -chmod 777 /spark-history

4.4 分发配置文件到所有节点

for node in agent1 agent2 agent3; do scp -r $SPARK_HOME/conf root@$node:$SPARK_HOME/ done

4.5 启动Spark集群

# 启动主节点和工作节点 start-all.sh # 启动历史服务器 start-history-server.sh # 验证进程(server1节点) jps | grep -E "Master|HistoryServer" # 验证进程(agent节点) jps | grep Worker

5. 验证Spark部署

5.1 访问Web UI

打开浏览器访问以下地址验证集群状态:

  • Spark Master UI: http://server1:8080
  • Spark History Server: http://server1:18080

5.2 运行示例程序

# 运行PI计算示例 spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar \ 100

5.3 查看测试报告

部署完成后可参考类似测试报告的验证方式,确保Spark集群功能正常:

图:Spark SQL查询测试结果示例(类似验证方式可参考Doris测试报告)

6. 常见问题解决

6.1 启动失败:Worker无法连接Master

  • 检查防火墙是否完全关闭
  • 验证hosts文件配置是否正确
  • 确保SPARK_MASTER_HOST配置正确

6.2 YARN资源不足

  • 调整yarn-site.xml中的内存配置
  • 减少Spark应用的executor内存请求
  • 增加集群节点资源

6.3 历史服务器无数据

  • 确认HDFS历史目录权限是否为777
  • 检查spark-defaults.conf中eventLog配置是否正确

7. 参考文档

  • Spark官方文档
  • openEuler bigdata项目文档
  • Spark移植指南
  • Hadoop部署指南

【免费下载链接】bigdataThis repository contains common information and common tools of bigdata.项目地址: https://gitcode.com/openeuler/bigdata

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1097328/

相关文章:

  • 2026视频去水印软件推荐:电脑手机免费好用工具及在线网站对比
  • 数字人矩阵运营,2026年数字人口播工作流,5款实测解析
  • G-Helper:拯救华硕ROG用户的轻量级性能控制神器
  • DeepInsight部署实战:Docker与Kubernetes容器化方案终极指南
  • G-Helper:5分钟掌握华硕笔记本性能控制的终极指南
  • 一些适合新手的RAP方式树立教程
  • Chromatic深度解析:如何用JavaScript玩转Chromium/V8底层内存操作
  • CTForge实战案例:保护关键业务系统的完整安全方案
  • 百考通AI帮你一次降至安全线
  • 3分钟解锁全网小说:阅读APP书源配置完全指南
  • 登报挂失收费标准是多少?登报挂失如何办理?一文知晓
  • 毕昇JDK 25开发环境配置:IDE集成与调试技巧大全
  • sysSentry源码解析:深入理解巡检框架的架构设计与实现原理
  • sra_benchmark实战:使用TensorFlow Serving部署和测试搜推模型的10个技巧
  • Path of Building PoE2:5步打造流放之路2完美角色构建的终极指南
  • openeuler/uadk-bigdata开发者指南:从编译源码到贡献代码的全流程攻略
  • 如何高效提取Wallpaper Engine资源:3个实际场景的完整解决方案
  • 数字政府人工智能公共支撑平台API的使用
  • 5分钟掌握无人机强化学习仿真:gym-pybullet-drones终极指南
  • npm招聘钓鱼攻击实战:一条私信触发npm install中招全程拆解
  • 如何3分钟掌握BiliDownloader:终极B站视频下载解决方案
  • ModelEngine实战教程:10步完成从数据处理到AI应用落地的完整流程
  • 全网最全 Codex 插件使用指南:从入门到榨干
  • 小龙虾技能-04-web-frontend-04_ReactComponent_组件生成
  • 【VMware磁盘瘦身终极指南】:3步释放50%以上闲置空间,90%管理员都忽略的压缩黑科技
  • cci-job-client深度解析:3个核心脚本实现Linux内核性能测试自动化
  • 智慧树自动刷课插件终极指南:3分钟实现学习效率300%提升
  • NVIDIA Profile Inspector:如何深度定制显卡驱动配置文件来优化游戏性能
  • 别再花钱买数据了!用Python+Baostock免费获取A股历史K线(附完整代码)
  • 告别手动点击!用Python脚本批量下载Synapse数据(附完整代码与Token获取指南)