CentOS 7上Spark 3.2.3单机版安装保姆级教程(附Python3.8.5和Hadoop2.10.2环境检查清单)
CentOS 7下Spark 3.2.3单机环境全流程部署指南在当今数据驱动的时代掌握大数据处理框架已成为开发者的必备技能。Apache Spark凭借其内存计算优势和丰富的生态支持成为众多企业构建数据处理平台的首选。本文将带领初学者在CentOS 7系统上完成Spark 3.2.3单机环境的完整部署特别针对国内网络环境优化安装流程并涵盖从基础环境检查到实战验证的全套解决方案。1. 环境准备与前置检查部署Spark前必须确保基础运行环境完整且版本匹配。许多安装失败案例都源于对前置条件的忽视因此我们首先需要建立完整的环境检查清单。核心依赖组件要求JDK 1.8必须严格使用该版本Python 3.8.5推荐使用此特定版本Hadoop 2.10.2伪分布式或单机模式使用以下命令验证基础环境# 检查Java版本 java -version # 输出应包含1.8.0_字样 # 检查Python版本 python3 --version # 应显示Python 3.8.5 # 检查Hadoop可用性 hadoop version # 确认版本号为2.10.2若缺少任一组件需先完成安装配置。对于国内用户建议使用以下镜像源加速下载# 配置阿里云yum源针对CentOS 7 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo注意Hadoop环境变量需预先配置正确否则Spark将无法识别Hadoop类路径。验证Hadoop环境变量是否生效echo $HADOOP_HOME # 应输出类似/usr/local/hadoop-2.10.2的路径2. Spark安装与配置优化2.1 获取安装包与目录规划为避免网络问题导致下载失败推荐使用国内镜像源获取Spark安装包# 创建安装目录 sudo mkdir -p /usr/local/spark cd /usr/local/spark # 使用华为云镜像下载适合国内网络环境 wget https://repo.huaweicloud.com/apache/spark/spark-3.2.3/spark-3.2.3-bin-without-hadoop.tgz # 验证文件完整性 sha256sum spark-3.2.3-bin-without-hadoop.tgz # 对比官方校验值a3f2c67b9733c6d6a0c9b8e8310d0751a1b392a9e0dbdf567e4ae0e9b54405ee解压并建立标准化目录结构tar -zxvf spark-3.2.3-bin-without-hadoop.tgz sudo mv spark-3.2.3-bin-without-hadoop /usr/local/spark-3.2.3 sudo ln -s /usr/local/spark-3.2.3 /usr/local/spark2.2 关键配置调整进入配置目录进行核心参数设置cd /usr/local/spark/conf cp spark-env.sh.template spark-env.sh编辑spark-env.sh文件添加以下关键配置# 设置Java安装路径 export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk # 关联Hadoop类路径根据实际安装路径调整 export SPARK_DIST_CLASSPATH$(/usr/local/hadoop-2.10.2/bin/hadoop classpath) # 指定Python路径 export PYSPARK_PYTHON/usr/bin/python3 # 设置单机模式内存分配根据机器配置调整 export SPARK_DRIVER_MEMORY2g export SPARK_EXECUTOR_MEMORY4g配置系统环境变量确保Spark命令全局可用sudo tee -a /etc/profile EOF # Spark环境配置 export SPARK_HOME/usr/local/spark export PATH$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin export PYTHONPATH$SPARK_HOME/python:$PYTHONPATH EOF # 立即生效 source /etc/profile3. 网络与权限配置3.1 防火墙设置为确保能够访问Spark Web UI默认端口4040需配置防火墙规则# 检查防火墙状态 sudo systemctl status firewalld # 若防火墙启用则添加规则 sudo firewall-cmd --zonepublic --add-port4040/tcp --permanent sudo firewall-cmd --reload # 验证端口开放 sudo firewall-cmd --list-ports3.2 用户权限管理建议创建专用用户运行Spark服务# 创建spark用户组和用户 sudo groupadd spark sudo useradd -g spark sparkuser # 授权安装目录 sudo chown -R sparkuser:spark /usr/local/spark-3.2.34. 验证与故障排查4.1 基础功能测试启动Spark交互式shell验证核心功能# 启动Scala shell spark-shell # 在shell中执行简单计算 val data 1 to 100 val rdd spark.sparkContext.parallelize(data) rdd.sum()测试PySpark环境pyspark # 在Python交互环境中执行 from pyspark.sql import SparkSession spark SparkSession.builder.appName(test).getOrCreate() df spark.createDataFrame([(1,Alice), (2,Bob)], [id,name]) df.show()4.2 常见问题解决方案问题1环境变量不生效# 检查环境变量加载 echo $SPARK_HOME # 若无输出尝试重新加载 source /etc/profile问题2Spark UI无法访问# 检查服务是否监听端口 netstat -tulnp | grep 4040 # 若未监听检查日志获取原因 cat /usr/local/spark/logs/spark--org.apache.spark.deploy.master.Master-*.out问题3Python版本冲突# 明确指定Python路径 export PYSPARK_PYTHON/usr/bin/python3.8 export PYSPARK_DRIVER_PYTHONpython3.85. 开发环境集成建议为提升本地开发体验可配置以下工具链Jupyter Notebook集成# 安装Jupyter pip3 install jupyter # 启动支持PySpark的Notebook PYSPARK_DRIVER_PYTHONjupyter PYSPARK_DRIVER_PYTHON_OPTSnotebook pysparkVS Code开发配置安装Python扩展和Pylance语言服务器配置.vscode/settings.json{ python.pythonPath: /usr/bin/python3, python.analysis.extraPaths: [ /usr/local/spark/python ] }对于需要频繁切换不同Spark版本的高级用户可以考虑使用update-alternatives工具管理多版本sudo update-alternatives --install /usr/local/spark spark /usr/local/spark-3.2.3 100 sudo update-alternatives --config spark
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2547350.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!