spark-pyspark配置-本地配置

声明:

1.参考视频b站黑马程序员视频,极力推荐这个视频,侵权删除

https://www.bilibili.com/video/BV1Jq4y1z7VP/?spm_id_from=333.337.search-card.all.click&vd_source=3ae466b20a9e8eabdaa10e84c9975849

2.第一次配置,仅作为个人记录使用。

3.所有软件在Linux安装地址默认/export/server,包括anaconda与spark,创建目录指令:mkdir export

一、准备Linux系统(本人使用VMware虚拟机)、Hadoop(本人使用3.3.4版本,本人使用spark支持Hadoop版本为3+)、spark安装包、anaconda安装包。

1.VMware与Hadoop默认配置完毕。

2.Hadoop在Linux系统里查看版本指令:Hadoop version,版本3+即可。

3.spark清华源安装地址( 本人使用安装包:spark-3.5.4-bin-hadoop3.tgz):

Index of /apache/spark/spark-3.5.4

4.anaconda安装包百度网盘:

通过网盘分享的文件:Anaconda3-2021.05-Linux-x86_64.sh
链接: https://pan.baidu.com/s/1rNNupcEHYSE-lBLUQq3EGQ?pwd=s9pm 提取码: s9pm 
--来自百度网盘超级会员v1的分享

二、安装anaconda

1.上传安装包Anaconda3-2021.05-Linux-x86_64.sh文件到Linux服务器上

2.安装指令:sh ./Anaconda3-2021.05-Linux-x86_64.sh,加载后 输入yes后就安装完成了

(此处更改,图片误将export写为expert).

3.安装完成后, 退出VM或重新连接虚拟机,看到这个Base开头表明安装好了.base是默认的虚拟环境.​

4.修改anaconda清华源

追加以下内容后,esc退出,按shift+:,输入wq!,退出。

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

5.测试:

6.创建anaconda新空间并修改python=3.8

7.使用新空间

anaconda配置完毕,即python配置完毕。

三、安装spark

1.上传安装包文件到Linux服务器上。

2.解压文件

3.配置环境变量(hadoop与Java环境变量默认配置完毕)

export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HDADOOP_HOME/etc/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

 4.配置bashrc

此处的Java地址是本人之前配置好的地址

5.测试spark中的bin中的pyspark

在bin中测试

注:

1.local本地模式的原理:

Spark 本地模式的运行原理可以通俗地理解为在一台电脑上模拟整个 Spark 集群的运行。

单一 JVM 进程

所有组件都在一个进程中:在本地模式下,Spark 的驱动程序(Driver)、执行器(Executor)以及任务调度等所有组件都运行在同一个 JVM 进程中。这意味着整个 Spark 应用程序就像一个普通的 Java/Scala 应用程序一样运行在本地机器上。

资源限制:由于所有组件都在一个 JVM 进程中运行,它们共享这个进程的内存和 CPU 资源。因此,在本地模式下,Spark 应用程序的资源使用受到单个 JVM 进程的限制,无法像在集群模式下那样利用多台机器的资源。

任务执行

任务调度和执行:尽管是在本地模式,Spark 的任务调度机制仍然存在。驱动程序会将应用程序的任务分解为多个小任务,并在同一个 JVM 进程中顺序执行这些任务。每个任务都会模拟在集群模式下执行器的行为,处理数据并返回结果。

数据存储:在本地模式下,Spark 会将数据存储在本地机器的内存或磁盘上。对于需要持久化的数据,Spark 会将其保存在本地的存储介质中,以便后续任务可以访问和处理。

适用场景

开发和测试:本地模式非常适合开发和测试阶段。开发者可以在本地机器上快速编写、调试和运行 Spark 应用程序,而不需要搭建一个完整的集群环境。这大大提高了开发效率,降低了开发成本。

小规模数据处理:对于处理小规模数据集的简单任务,本地模式也是一个不错的选择。它能够快速执行任务并返回结果,适合进行数据探索和分析。

限制和注意事项

性能限制:由于资源限制,本地模式下的 Spark 应用程序在处理大规模数据集或复杂任务时可能会遇到性能瓶颈。它不适合用于生产环境或需要高性能计算的场景。

配置参数:在本地模式下,可以通过配置参数来指定使用的线程数,例如使用 local[4] 作为主参数,表示在本地使用 4 个线程来运行 Spark 应用程序。这可以在一定程度上提高并行处理能力,但仍然受到单个 JVM 进程的限制。

<think>好的,我现在需要帮助用户解决在安装PySpark时遇到的“python setup.py bdist_wheel”错误。用户提到他们使用的是Anaconda3和Python3.8,并且遇到了SetuptoolsDeprecationWarning以及子进程退出错误。 首先,我应该回顾用户之前的对话历史。用户之前遇到安装卡顿的问题,我提供了清理临时文件、使用镜像源、分阶段安装等方法。现在用户的新问题涉及不同的错误,需要重新分析。 根据引用[1]和[2],用户提供的参考信息中提到了“python setup.py egg_info”错误,可能setuptools过时或Python版本不兼容有关。此外,用户现在遇到的错误是“bdist_wheel”,这可能wheel包缺失或构建环境不完整有关。 首先,我需要确定“bdist_wheel”错误的常见原因。通常,这个错误发生在尝试从源代码构建wheel时,缺少必要的构建工具或依赖项。可能的原因包括: 1. **setuptools或wheel版本过旧**:用户可能使用的setuptools版本过时,导致Python3.8的兼容性问题。 2. **缺少构建依赖项**:某些包需要C/C++编译器或其他系统库才能编译。 3. **Python环境问题**:Anaconda环境可能存在冲突,或者虚拟环境配置不正确。 4. **PySpark的依赖项不满足**:PySpark可能依赖特定版本的库,如Java、Hadoop等。 接下来,我需要根据这些可能性提出解决方案。首先建议用户更新setuptools和wheel,因为这是最常见的解决方法。然后检查构建工具是否安装,比如gcc、make等。此外,用户使用Anaconda,可能需要通过conda安装某些依赖,而不是pip,以避免环境冲突。 另外,用户提到SetuptoolsDeprecationWarning,这通常意味着代码中使用了即将弃用的功能,可能需要升级setuptools或调整配置。还需要考虑Python版本是否PySpark兼容,尽管用户使用的是Python3.8,PySpark一般支持较新的版本,但可能需要确认官方文档。 用户之前尝试过使用镜像源,但这次错误不同,可能需要不同的处理。例如,安装构建依赖项,或使用conda来管理环境,避免pip的编译步骤。 还需要检查用户是否安装了JDK,因为PySpark依赖Java环境,但此错误可能不直接相关,但最好一并检查。 最后,可能需要建议用户创建新的conda环境,指定Python版本,并优先使用conda安装PySpark,如果可行的话,或者分步安装依赖项,确保所有前置条件满足。</think>#### **分步解决方案:PySpark安装报错`python setup.py bdist_wheel`** --- ### **一、问题诊断** 报错`subprocess-exited-with-error`通常由以下原因导致: 1. **setuptools/wheel版本过旧**(引用[1]中提到的核心问题) 2. **缺失构建工具链**(C编译器、Python头文件等) 3. **Anaconda环境依赖冲突**(引用[2]中Python版本兼容性问题) 4. **PySpark特定依赖未满足**(Java环境、Hadoop库等) --- ### **二、基础修复步骤** #### **1. 升级核心工具链** ```bash # 强制更新setuptools和wheel(引用[1]方法扩展) pip install --upgrade setuptools wheel cython -i https://pypi.tuna.tsinghua.edu.cn/simple ``` #### **2. 安装构建依赖** ```bash # 针对Anaconda环境安装开发工具(引用[2]环境隔离思路) conda install -c conda-forge gcc_linux-64 gxx_linux-64 make conda install python=3.8.16 # 固定Python小版本 ``` #### **3. 清理残留文件** ```bash # 删除旧编译产物(引用[1]清理方法) rm -rf ~/.cache/pip # 清除pip缓存 find /tmp -name "pip-*" -exec rm -rf {} \; # 清理临时目录 ``` --- ### **三、指定版本安装** #### **1. 安装兼容的PySpark版本** ```bash # 选择Python3.8兼容的PySpark版本(引用[2]版本匹配原则) pip install "pyspark<3.5" \ --no-cache-dir \ --global-option="--verbose" \ --install-option="--force-reinstall" ``` #### **2. 使用conda优先安装** ```bash # 通过conda解决依赖冲突(引用[2]虚拟环境方案) conda create -n pyspark38 python=3.8 conda activate pyspark38 conda install -c conda-forge pyspark=3.3.1 # 指定兼容版本 ``` --- ### **四、高级修复方案** #### **1. 手动构建wheel** ```bash # 下载源码包手动编译(引用[1]源码安装思路) wget https://archive.apache.org/dist/spark/spark-3.4.0/spark-3.4.0.tgz tar -xzf spark-3.4.0.tgz cd spark-3.4.0/python python setup.py bdist_wheel # 生成自定义wheel pip install dist/pyspark-*.whl ``` #### **2. 环境变量配置** ```bash # 设置编译参数(解决SSL等依赖问题) export CFLAGS="-I$CONDA_PREFIX/include" export LDFLAGS="-L$CONDA_PREFIX/lib" export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt ``` --- ### **五、依赖验证** #### **1. 检查Java环境** ```bash # PySpark需要Java8/11(引用[2]间接依赖要求) java -version # 应显示1.8或11.x echo $JAVA_HOME # 需指向有效路径 ``` #### **2. 验证Python头文件** ```bash # 确保Python.h存在(缺少会导致编译失败) find $CONDA_PREFIX -name "Python.h" # 若缺失则安装: conda install python=3.8.16 # 重新安装Python运行时 ``` --- ### **六、技术原理图解** 1. **Wheel构建过程** ```mermaid graph LR A[pip下载源码] --> B(执行setup.py) B --> C{检查wheel缓存} C --存在--> D[直接安装] C --不存在--> E[调用bdist_wheel] E --> F[编译C扩展] F --> G[生成.whl文件] G --> D ``` 2. **版本兼容矩阵** | Python版本 | PySpark兼容范围 | 推荐组合 | |------------|------------------|---------------| | 3.8 | 3.0.0 ~ 3.4.1 | 3.8.16+3.3.1 | | 3.9 | 3.1.2 ~ 3.5.0 | 3.9.12+3.4.0 | --- ### **相关问题扩展** 1. **如何修复`error: invalid command 'bdist_wheel'`?** ```bash # 安装wheel工具包 pip install wheel --force-reinstall ``` 2. **安装后出现`No module named 'pyspark'`怎么办?** - 检查conda环境激活状态 - 运行`python -m site`确认sys.path包含安装目录 3. **如何彻底卸载PySpark?** ```bash pip uninstall pyspark py4j conda remove pyspark rm -rf ~/.ivy2/jars/*spark* ``` --- [^1]: 使用清华镜像源可避免网络问题导致安装中断 [^2]: Anaconda能有效管理Python版本和依赖隔离 [^3]: PySpark 3.3.x对Python3.8的兼容性最佳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值