You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Worker节点Python环境版本不匹配问题求助

Spark Worker节点Python版本不兼容问题排查思路
  • 验证环境变量实际生效状态
    登录新增Worker节点,执行以下命令确认环境变量:

    echo $PYSPARK_PYTHON
    echo $PYSPARK_DRIVER_PYTHON
    which python
    

    确保输出的Python路径是Anaconda创建的3.10环境路径(比如/home/xxx/anaconda3/envs/py310/bin/python)。若路径不对,说明.bashrc配置未全局生效,可将环境变量迁移到.bash_profile或/etc/profile中,再重新登录节点验证。

  • 检查Spark Worker进程的环境变量加载
    重启Worker节点的Spark服务后,用ps aux | grep spark-worker获取Worker进程PID,执行:

    cat /proc/<PID>/environ | tr '\0' '\n' | grep PYSPARK
    

    确认进程内的PYSPARK变量是否指向Python3.10。如果进程仍加载旧变量,修改Worker节点本地Spark安装目录下的spark-env.sh,添加:

    export PYSPARK_PYTHON=/path/to/anaconda3/envs/py310/bin/python
    export PYSPARK_DRIVER_PYTHON=/path/to/anaconda3/envs/py310/bin/python
    

    之后重启Worker服务:stop-worker.sh再start-worker.sh spark://master-ip:7077

  • 确认Anaconda环境的pyspark匹配性
    在Worker节点激活Python3.10环境,检查pyspark版本:

    source activate py310
    pip list | grep pyspark
    

    若未安装或版本与集群Spark不匹配,安装对应版本的pyspark,比如集群为Spark3.3.0则执行:

    pip install pyspark==3.3.0
    
  • 修正系统默认Python软链接
    若Spark仍调用系统默认Python,可修改软链接指向Anaconda3.10环境:

    sudo rm /usr/bin/python
    sudo ln -s /path/to/anaconda3/envs/py310/bin/python /usr/bin/python
    

    执行python --version确认版本为3.10

  • 提交测试任务验证版本一致性
    在主节点创建test.py文件:

    import sys
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder.appName("PythonVersionCheck").getOrCreate()
    rdd = spark.sparkContext.parallelize([1,2,3])
    print("Worker Python Version:", rdd.map(lambda x: sys.version).collect())
    spark.stop()
    

    提交任务:

    spark-submit --master spark://master-ip:7077 --deploy-mode client test.py
    

    查看输出,确认所有Worker返回的版本均为3.10,若新增节点仍显示3.7,重新排查上述配置步骤。

内容的提问来源于stack exchange,提问作者ensberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:15:05