从零开始:在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前,请确保系统中已安装以下软件:
| 软件 | 版本要求 | 获取方法 |
|---|---|---|
| OpenJDK | 1.8.0_342 | 通过yum安装或从官网获取 |
| Hadoop | 3.3.4 | 官网下载,aarch64架构需参考hadoop移植指南 |
| Spark | 3.2.2 | 官网下载,aarch64架构需参考spark移植指南 |
1.2 硬件与操作系统要求
- 硬件配置:最低要求为任意CPU、1GB内存、10GB硬盘,实际生产环境需根据数据量调整
- 操作系统:支持openEuler-20.03、openEuler-22.03及CentOS 7.4~7.6版本
1.3 集群环境规划(以4节点为例)
| 节点名称 | IP地址 | 硬件配置 | 部署服务 |
|---|---|---|---|
| server1 | IPaddress1 | 系统盘4TB + 数据盘12×4TB HDD | Namenode、ResourceManager |
| agent1 | IPaddress2 | 系统盘4TB + 数据盘12×4TB HDD | DataNode、NodeManager、JournalNode |
| agent2 | IPaddress3 | 系统盘4TB + 数据盘12×4TB HDD | DataNode、NodeManager、JournalNode |
| agent3 | IPaddress4 | 系统盘4TB + 数据盘12×4TB HDD | DataNode、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 EOF2.2 关闭防火墙与SELinux
# 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service # 关闭SELinux(临时生效) setenforce 0 # 永久关闭(需重启) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config2.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 done2.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/spark4.2 配置环境变量
cat >> /etc/profile << EOF # Spark环境变量 export SPARK_HOME=/usr/local/spark export PATH=\$PATH:\$SPARK_HOME/bin:\$SPARK_HOME/sbin EOF # 使配置生效 source /etc/profile4.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 EOF4.3.2 配置workers文件
cp workers.template workers cat > workers << EOF server1 agent1 agent2 agent3 EOF4.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-history4.4 分发配置文件到所有节点
for node in agent1 agent2 agent3; do scp -r $SPARK_HOME/conf root@$node:$SPARK_HOME/ done4.5 启动Spark集群
# 启动主节点和工作节点 start-all.sh # 启动历史服务器 start-history-server.sh # 验证进程(server1节点) jps | grep -E "Master|HistoryServer" # 验证进程(agent节点) jps | grep Worker5. 验证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 \ 1005.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),仅供参考
