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

安装google-ads后Data Proc集群连接GCS Bucket失败求助

问题分析

这个错误源于google-ads包与其他GCP客户端库的google-auth依赖版本冲突:
安装google-ads时,它会自动拉取或升级google-auth至自身要求的版本,而该版本与google-cloud-storage等库依赖的google-auth版本不兼容,导致google.auth.credentials模块缺失CredentialsWithTokenUri属性,最终影响GCS连接。

解决方案

方法1:强制锁定兼容的google-auth版本

找到同时满足所有安装包依赖的google-auth版本,添加到PIP_PACKAGES中强制锁定:
根据各包的依赖要求:

  • google-cloud-bigquery==3.10.0 要求 google-auth>=2.14.0
  • google-cloud-storage==2.8.0 要求 google-auth>=1.25.0
  • google-ads==21.0.0 要求 google-auth>=2.15.0,<3.0.0

选择google-auth==2.15.0(该版本包含CredentialsWithTokenUri,且兼容所有上述包),修改后的PIP_PACKAGES如下:

"PIP_PACKAGES": "google-auth==2.15.0 google-cloud-bigquery==3.10.0 google-resumable-media[requests]==2.5.0 google-cloud-storage==2.8.0 google-cloud-secret-manager==2.16.1 google-ads==21.0.0"

方法2:用初始化动作隔离google-ads依赖

若方法1无效,可通过初始化动作在独立Python环境中安装google-ads,避免干扰集群全局依赖:

  1. 创建初始化脚本install-google-ads.sh:
#!/bin/bash
sudo apt-get update && sudo apt-get install -y python3-venv
python3 -m venv /opt/google-ads-env
source /opt/google-ads-env/bin/activate
pip install google-ads==21.0.0
deactivate
  1. 创建集群时指定该初始化动作:
gcloud dataproc clusters create CLUSTER_NAME \
    --region REGION \
    --initialization-actions gs://YOUR_BUCKET_PATH/install-google-ads.sh \
    --pip-packages "google-cloud-bigquery==3.10.0 google-resumable-media[requests]==2.5.0 google-cloud-storage==2.8.0 google-cloud-secret-manager==2.16.1"

运行相关作业时,激活该虚拟环境执行代码即可。

方法3:升级Data Proc基础镜像版本

如果使用的是旧版Data Proc镜像,预装依赖版本可能偏老,尝试升级至最新稳定版镜像(如2.1及以上),基础环境依赖更完善,能降低冲突概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:32:40