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

提交Spark任务时出现GLIBC_2.25未找到错误,已装2.26如何解决?

问题分析

报错核心是Spark executor节点上的虚拟环境Python解释器(venv/bin/python)依赖GLIBC_2.25,但当前系统虽已安装GLIBC 2.26,却存在路径配置问题或虚拟环境的Python编译时绑定了旧版本依赖,导致无法识别高版本GLIBC。

解决方案

1. 重建虚拟环境

虚拟环境的Python如果是在旧GLIBC环境下编译生成的,会硬绑定依赖版本,升级系统GLIBC后也无法自动适配。需重新创建虚拟环境:

  • 删除现有虚拟环境:rm -rf venv
  • 用当前系统的Python重新创建:python3 -m venv venv
  • 激活虚拟环境并重装依赖:source venv/bin/activate && pip install -r requirements.txt

2. 配置GLIBC库加载路径

若GLIBC 2.26安装在非系统标准路径(如/usr/local/lib64),需让Spark的driver和executor优先加载该路径的库:

  • 提交任务时通过参数指定环境变量:
    spark-submit --conf spark.executorEnv.LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH \
                 --conf spark.driverEnv.LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH \
                 your_spark_script.py
    
  • 或修改Spark全局配置文件spark-defaults.conf,添加:
    spark.executorEnv.LD_LIBRARY_PATH /usr/local/lib64:$LD_LIBRARY_PATH
    spark.driverEnv.LD_LIBRARY_PATH /usr/local/lib64:$LD_LIBRARY_PATH
    

3. 验证集群所有节点的GLIBC状态

Spark是分布式任务,所有executor节点需具备兼容的GLIBC版本:

  • 登录报错节点(ip-xx-xxx-xx-xx.ec2.internal),检查GLIBC版本:ldd --version
  • 若节点未安装GLIBC 2.26,需在所有集群节点完成安装并配置路径,确保一致性。

4. 使用静态编译的Python

若上述方法无效,可采用静态编译的Python(不依赖系统GLIBC):

  • 编译或下载静态版本的Python(编译时需指定--enable-static参数)
  • 用该Python创建虚拟环境,确保依赖包也适配静态编译环境
  • 提交任务时指定该Python路径:spark-submit --conf spark.pyspark.python=/path/to/static/python your_spark_script.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:13:09