Windows10下PySpark启用GPU时加载cudf jni库失败求助
PySpark(Windows 10)加载cudf JNI库失败的解决方案
问题重现
启动带GPU支持的PySpark时执行以下命令:
pyspark --jars "${SPARK_HOME}/jars/rapids-4-spark_2.12-23.12.2.jar,${SPARK_HOME}/jars/cudf-23.12.1" --conf spark.plugins=com.nvidia.spark.SQLPlugin --conf spark.rapids.sql.incompatibleOps.enabled=true
出现错误:
24/02/08 15:55:25 ERROR NativeDepsLoader: Could not load cudf jni library... java.io.IOException: Error loading dependencies
无参数启动pyspark或spark-submit运行Python文件正常,环境信息:
- NVIDIA GeForce RTX 3090
- Driver Version: 551.23
- CUDA Version: 12.4
- Spark jars目录已放置
rapids-4-spark_2.12-23.12.2.jar和cudf-23.12.1.jar
解决方案
1. 修复启动命令的jar路径错误
命令中cudf-23.12.1缺少.jar后缀,正确命令应为:
pyspark --jars "${SPARK_HOME}/jars/rapids-4-spark_2.12-23.12.2.jar,${SPARK_HOME}/jars/cudf-23.12.1.jar" --conf spark.plugins=com.nvidia.spark.SQLPlugin --conf spark.rapids.sql.incompatibleOps.enabled=true
2. 匹配CUDA与RAPIDS版本兼容性
RAPIDS Accelerator 23.12.x官方适配的CUDA版本是12.2,你的环境是CUDA 12.4,版本不匹配会导致JNI库加载失败。建议安装CUDA Toolkit 12.2,并将CUDA_PATH\bin添加到系统PATH环境变量最前端,确保优先加载对应版本的CUDA依赖。
3. 确认cudf jar适配Windows平台
RAPIDS的cudf jar分平台发布,若你下载的是Linux版本jar,Windows系统无法加载其中的native库。需重新下载适配Windows + CUDA 12.2的cudf jar(文件名通常包含-windows-x86_64标识),替换现有文件。
4. 澄清GPU发现脚本的误解
GPU发现脚本是Linux平台专属工具,Windows系统无需额外配置,此问题与该脚本无关。
5. 排查具体依赖缺失
添加日志参数查看详细错误信息,定位缺失的依赖库:
pyspark --jars "${SPARK_HOME}/jars/rapids-4-spark_2.12-23.12.2.jar,${SPARK_HOME}/jars/cudf-23.12.1.jar" --conf spark.plugins=com.nvidia.spark.SQLPlugin --conf spark.rapids.sql.incompatibleOps.enabled=true --conf spark.driver.extraJavaOptions=-Dorg.slf4j.simpleLogger.defaultLogLevel=debug
若日志显示找不到cudart64_12.dll等文件,说明CUDA Toolkit未正确配置或版本不匹配。
6. 注意Windows平台的实验性支持
RAPIDS Accelerator for Spark在Windows平台仅为实验性支持,部分功能可能存在兼容性问题,若上述方案无效,可考虑切换到Linux平台部署以获得更稳定的支持。
内容的提问来源于stack exchange,提问作者Karthik Sankaran
相关产品推荐
相关产品推荐

