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

Dataproc on GKE:配置属性中指定的Python包未安装

问题:Dataproc on GKE提交作业报错ModuleNotFoundError:No module named 'google'

问题详情

在GKE集群上创建Dataproc集群后,已通过配置属性指定所需Python包,但提交作业时触发ModuleNotFoundError,找不到google模块。

错误日志

...
Waiting for job output...
 PYSPARK_PYTHON=/opt/conda/bin/python
JAVA_HOME=/usr/lib/jvm/temurin-8-jdk-amd64
SPARK_EXTRA_CLASSPATH=
Merging Spark configs
Skipping merging /opt/spark/conf/spark-defaults.conf, file does not exist.
Skipping merging /opt/spark/conf/log4j.properties, file does not exist.
Skipping merging /opt/spark/conf/spark-env.sh, file does not exist.
Skipping custom init script, file does not exist.
Running heartbeat loop
Traceback (most recent call last):
  File "/tmp/spark-d6516b57-0924-4ce2-9de8-a5c1116667b4/pkg.py", line 1, in <module>
    from google.cloud import secretmanager
ModuleNotFoundError: No module named 'google'

集群创建命令

gcloud dataproc clusters gke create gke-dp --region=asia-southeast1 --spark-engine-version=3.1 \
--gke-cluster=gke-spark --gke-cluster-location=asia-southeast1-b --namespace=dataproc \
--pools='name=dp-default,roles=default,machineType=n2-standard-2,min=1,max=1' \
--pools='name=dp-workers,roles=spark-driver;spark-executor,machineType=n2-standard-4,min=1,max=4' \
--properties='^#^dataproc:pip.packages=google-cloud-secret-manager==2.15.0,numpy==1.24.1#spark:spark.jars=https://jdbc.postgresql.org/download/postgresql-42.5.1.jar' \
--properties="dataproc:dataproc.gke.agent.google-service-account=dataproc@de-project.iam.gserviceaccount.com" \
--properties="dataproc:dataproc.gke.spark.driver.google-service-account=dataproc@de-project.iam.gserviceaccount.com" \
--properties="dataproc:dataproc.gke.spark.executor.google-service-account=dataproc@de-project.iam.gserviceaccount.com"

解决方案

核心原因

错误日志显示Spark使用的Python环境是/opt/conda/bin/python,但默认情况下dataproc:pip.packages会将包安装到系统Python环境(/usr/bin/python3),导致Spark运行时找不到依赖。

方法1:强制使用conda环境的pip安装包

修改集群创建命令中的properties参数,添加dataproc:pip.command=/opt/conda/bin/pip,指定用Spark对应的conda环境下的pip安装依赖:

--properties='^#^dataproc:pip.packages=google-cloud-secret-manager==2.15.0,numpy==1.24.1#spark:spark.jars=https://jdbc.postgresql.org/download/postgresql-42.5.1.jar#dataproc:pip.command=/opt/conda/bin/pip'

方法2:切换Spark使用系统Python环境

如果不需要conda环境,直接修改Spark配置,让它使用系统Python:

--properties='^#^spark:spark.pyspark.python=/usr/bin/python3#spark:spark.pyspark.driver.python=/usr/bin/python3#dataproc:pip.packages=google-cloud-secret-manager==2.15.0,numpy==1.24.1'

方法3:用初始化脚本手动安装包

如果上述方法无效,编写初始化脚本手动在conda环境安装依赖:

  1. 创建脚本install_pkgs.sh:
#!/bin/bash
/opt/conda/bin/pip install google-cloud-secret-manager==2.15.0 numpy==1.24.1
  1. 将脚本上传到GCS存储桶(如gs://your-bucket/install_pkgs.sh)
  2. 创建集群时添加初始化脚本参数:
--initialization-actions=gs://your-bucket/install_pkgs.sh

验证方法

集群创建完成后,登录driver节点执行以下命令,确认包已安装:

/opt/conda/bin/pip list | grep google-cloud-secret-manager

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:51:31